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:55] – [checker.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. | ||
===== checker.php ===== | ===== checker.php ===== | ||
+ | |||
+ | Sorgt für den notwendigen zusätzlichen Request beim SessionHook. | ||
<file php checker.php> | <file php checker.php> | ||
<?php | <?php | ||
//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 13: | Zeile 28: | ||
===== logoutnotify.php ===== | ===== logoutnotify.php ===== | ||
+ | |||
+ | Dieses Skript [[de: | ||
<file php logoutnotify.php> | <file php logoutnotify.php> | ||
Zeile 85: | 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 175: | 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 235: | 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 256: | 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 311: | 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 326: | 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(' | ||
} | } |