Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:shibslohttpd:helperscripts [2015/12/09 08:58] – [logoutnotify.php] Schreiterer, Frank | de:shibslohttpd:helperscripts [2019/02/28 12:25] (aktuell) – [logoutnotify.php] Schreiterer, Frank | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== |
| Alle hier aufgeführten Skripte sind beispielhaft und müssen ggf. angepasst werden. | Alle hier aufgeführten Skripte sind beispielhaft und müssen ggf. angepasst werden. | ||
| Zeile 10: | Zeile 10: | ||
| //redirect to application | //redirect to application | ||
| header(' | header(' | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | ===== initsess.php ===== | ||
| + | <file php initsess.php> | ||
| + | <?php | ||
| + | // | ||
| + | session_start(); | ||
| + | // | ||
| + | $path = " | ||
| + | //and redirect to application | ||
| + | $redirect = " | ||
| + | header(' | ||
| ?> | ?> | ||
| </ | </ | ||
| Zeile 89: | Zeile 102: | ||
| // See function LogoutNotification below | // See function LogoutNotification below | ||
| - | elseif (!empty($HTTP_RAW_POST_DATA)) { | + | elseif (!empty(file_get_contents(" |
| // Set SOAP header | // Set SOAP header | ||
| $server = new SoapServer(' | $server = new SoapServer(' | ||
| Zeile 179: | Zeile 192: | ||
| // SessionID is stored in the user session data! | // SessionID is stored in the user session data! | ||
| | | ||
| - | | ||
| - | // | ||
| - | $dbDriver=" | ||
| - | $dbHost=" | ||
| - | $dbUser=" | ||
| - | $dbPass=" | ||
| - | $dbName=" | ||
| - | $dbPort=" | ||
| - | |||
| // | // | ||
| $mcsrv=" | $mcsrv=" | ||
| $mcport=" | $mcport=" | ||
| - | + | ||
| - | //mode memcached or DB | + | $mc=new Memcache; |
| - | $mode = " | + | $mc-> |
| - | #$mode = " | + | //get the application session id |
| - | + | $appsessionid = $mc-> | |
| - | if ($mode == " | + | //remove |
| - | //Remove the entry in shibchecker-DB and the aplication session | + | $ret = $mc-> delete($SessionID); |
| - | try { | + | $ret = $mc-> delete($appsessionid); |
| - | $pdo = new PDO(" | + | if ($appsessionid == false) { |
| - | //get the application session id | + | $appsessionid = ""; |
| - | $sqlappsess=" | + | |
| - | $appsessionid = ""; | + | |
| - | if ($res = $pdo-> | + | |
| - | while ($row = $res-> | + | |
| - | $appsessionid = $row[' | + | |
| - | } | + | |
| - | } | + | |
| - | if ($appsessionid != "" | + | |
| - | $sql=" | + | |
| - | $pdo-> | + | |
| - | $pdo = NULL; | + | |
| - | } | + | |
| - | } catch (PDOExeption $e) { | + | |
| - | return new SoapFault(' | + | |
| - | } | + | |
| - | } elseif ($mode == " | + | |
| - | $mc=new Memcache; | + | |
| - | $mc-> | + | |
| - | //get the application session id | + | |
| - | $appsessionid = $mc-> | + | |
| - | //remove | + | |
| - | $ret = $mc-> delete($SessionID); | + | |
| - | $ret = $mc-> delete($appsessionid); | + | |
| - | if ($appsessionid == false) { | + | |
| - | $appsessionid = ""; | + | |
| - | } | + | |
| } | } | ||
| + | |||
| //Connect to the application session (PHP Session) | //Connect to the application session (PHP Session) | ||
| session_id($appsessionid); | session_id($appsessionid); | ||
| Zeile 239: | Zeile 218: | ||
| </ | </ | ||
| - | ===== sessionremover.php ===== | + | ===== remsess.php ===== |
| - | <file php SESSIONREMOVER.php> | + | <file php remsess.php> |
| <?php | <?php | ||
| /* | /* | ||
| - | | + | This program is free software: you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by | it under the terms of the GNU General Public License as published by | ||
| the Free Software Foundation, either version 3 of the License, or | the Free Software Foundation, either version 3 of the License, or | ||
| Zeile 260: | Zeile 239: | ||
| Copyright 2015 Frank Schreiterer, | Copyright 2015 Frank Schreiterer, | ||
| */ | */ | ||
| - | |||
| - | #modus memcached oder DB | ||
| - | $mode = " | ||
| - | |||
| - | function removeDB ($destid) { | ||
| - | $dbDriver=" | ||
| - | $dbHost=" | ||
| - | $dbUser=" | ||
| - | $dbPass=" | ||
| - | $dbName=" | ||
| - | $dbPort=" | ||
| - | try { | ||
| - | $pdo = new PDO(" | ||
| - | } catch (PDOExeption $e) { } | ||
| - | $sql=" | ||
| - | $pdo-> | ||
| - | $pdo = NULL; | ||
| - | } | ||
| function removeMemcached($destid) { | function removeMemcached($destid) { | ||
| - | | + | $mcsrv=" |
| - | $mcport=" | + | $mcport=" |
| - | $mc=new Memcache; | + | $mc=new Memcache; |
| - | $mc-> | + | $mc-> |
| - | $stats = $mc-> | + | $stats = $mc-> |
| $list = array(); | $list = array(); | ||
| #memcached auslesen und bei passendem Wert den Key entfernen | #memcached auslesen und bei passendem Wert den Key entfernen | ||
| Zeile 315: | Zeile 276: | ||
| if ($destid != "" | if ($destid != "" | ||
| session_id($destid); | session_id($destid); | ||
| - | if ($mode == " | + | removeMemcached($destid); |
| - | removeDB($destid); | + | |
| - | } elseif ($mode == " | + | |
| - | removeMemcached($destid); | + | |
| - | } | + | |
| session_start(); | session_start(); | ||
| session_destroy(); | session_destroy(); | ||
| Zeile 330: | Zeile 287: | ||
| $shiblogoff = $_REQUEST[' | $shiblogoff = $_REQUEST[' | ||
| if ($shiblogoff == " | if ($shiblogoff == " | ||
| - | echo "Sie wurden abgemeldet.< | + | echo "Sie wurden abgemeldet.< |
| - | oder <a href=\" | + | |
| - | oder <a href=\" | + | |
| - | echo "Von allen Webanwendungen <a href=\" | + | |
| } | } | ||
| } else { | } else { | ||
| $destid = session_id(); | $destid = session_id(); | ||
| - | if ($mode == " | + | removeMemcached($destid); |
| - | removeDB($destid); | + | |
| - | } elseif ($mode == " | + | |
| - | removeMemcached($destid); | + | |
| - | } | + | |
| - | $url=" | + | $url=" |
| header(' | header(' | ||
| } | } | ||