5ini_set(
"soap.wsdl_cache_enabled", 
"0"); 
 
   25if (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}"/>
 
  133function LogoutNotification($SessionID)
 
  144    $q = 
"SELECT session_id, data FROM usr_session WHERE expires > 'NOW()'";
 
  148        $user_session = unserializesession($session_entry[
'data']);
 
  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();
 
  174    for (
$i = 0; 
$i < count($a); 
$i = 
$i + 2) {
 
  175        $variables[$a[
$i]] = unserialize($a[
$i + 1]);
 
An exception for terminatinating execution or to throw for unit testing.
static init($a_type)
Init context by type.
static initILIAS()
ilias initialisation
static _destroy($a_session_id, $a_closing_context=null, $a_expired_at=null)
Destroy session.
static redirect($a_script)
global $HTTP_RAW_POST_DATA
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
echo;exit;}function LogoutNotification($SessionID){ global $ilDB;$q="SELECT session_id, data FROM usr_session WHERE expires > (\w+)\|/" PREG_SPLIT_NO_EMPTY PREG_SPLIT_DELIM_CAPTURE
echo;exit;}function LogoutNotification($SessionID){ global $ilDB;$q="SELECT session_id, data FROM usr_session WHERE expires > (\w+)\|/" $serialized_string
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']