5 ini_set(
"soap.wsdl_cache_enabled",
"0");
25 if (isset(
$_GET[
'return']) && isset(
$_GET[
'action']) &&
$_GET[
'action'] ==
'logout') {
28 require_once
"include/inc.header.php";
32 $GLOBALS[
'DIC'][
'ilAuthSession']->logout();
47 include_once
"Services/Context/classes/class.ilContext.php";
51 require_once(
"Services/Init/classes/class.ilInitialisation.php");
55 $server =
new SoapServer(
'https://' .
$_SERVER[
'HTTP_HOST'] .
$_SERVER[
'SCRIPT_NAME'] .
'/LogoutNotification.wsdl');
56 $server->addFunction(
"LogoutNotification");
68 header(
'Content-Type: text/xml');
70 $url = filter_var(
"https://{$_SERVER['HTTP_HOST']}/shib_logout.php", FILTER_SANITIZE_URL);
73 <?xml version =
"1.0" encoding =
"UTF-8" ?>
74 <definitions name=
"LogoutNotification" 75 targetNamespace=
"urn:mace:shibboleth:2.0:sp:notify" 76 xmlns:notify=
"urn:mace:shibboleth:2.0:sp:notify" 77 xmlns:soap=
"http://schemas.xmlsoap.org/wsdl/soap/" 78 xmlns=
"http://schemas.xmlsoap.org/wsdl/">
81 <schema targetNamespace=
"urn:mace:shibboleth:2.0:sp:notify" 82 xmlns=
"http://www.w3.org/2000/10/XMLSchema" 83 xmlns:notify=
"urn:mace:shibboleth:2.0:sp:notify">
85 <simpleType name=
"string">
86 <restriction
base=
"string">
87 <minLength value=
"1"/>
91 <element name=
"OK" type=
"notify:OKType"/>
92 <complexType name=
"OKType">
99 <message name=
"getLogoutNotificationRequest">
100 <part name=
"SessionID" type=
"notify:string" />
103 <message name=
"getLogoutNotificationResponse" >
107 <portType name=
"LogoutNotificationPortType">
108 <operation name=
"LogoutNotification">
109 <
input message=
"getLogoutNotificationRequest"/>
110 <output message=
"getLogoutNotificationResponse"/>
114 <binding name=
"LogoutNotificationBinding" type=
"notify:LogoutNotificationPortType">
115 <soap:binding
style=
"rpc" transport=
"http://schemas.xmlsoap.org/soap/http"/>
116 <operation name=
"LogoutNotification">
117 <soap:operation soapAction=
"urn:xmethods-logout-notification#LogoutNotification"/>
121 <service name=
"LogoutNotificationService">
122 <port name=
"LogoutNotificationPort" binding=
"notify:LogoutNotificationBinding">
123 <soap:address location=
"{$url}"/>
133 function LogoutNotification($SessionID)
144 $q =
"SELECT session_id, data FROM usr_session WHERE expires > 'NOW()'";
145 $r = $ilDB->query($q);
152 foreach ($user_session as $user_session_entry) {
153 if (is_array($user_session_entry)
154 && array_key_exists(
'shibboleth_session_id', $user_session_entry)
155 && $user_session_entry[
'shibboleth_session_id'] == $SessionID
160 return new SoapFault(
'LogoutError',
'Could not delete session entry in database.');
172 $variables = array();
173 $a = preg_split(
"/(\w+)\|/", $serialized_string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
174 for (
$i = 0;
$i < count($a);
$i =
$i + 2) {
175 $variables[$a[
$i]] = unserialize($a[
$i + 1]);
static _destroy($a_session_id, $a_closing_context=null, $a_expired_at=null)
Destroy session.
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']
global $HTTP_RAW_POST_DATA
static initILIAS()
ilias initialisation
static init($a_type)
Init context by type.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) unserializesession($serialized_string)
static redirect($a_script)
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.