Skip to content
Snippets Groups Projects
Commit cfd5906f authored by Hans Zandbelt's avatar Hans Zandbelt
Browse files

logout support for WS-Fed

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1060 44740490-163a-0410-bde0-09ae8108e29a
parent 0ca2eb37
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,7 @@ $t->data['remaining'] = $session->remainingTime(); ...@@ -21,7 +21,7 @@ $t->data['remaining'] = $session->remainingTime();
$t->data['sessionsize'] = $session->getSize(); $t->data['sessionsize'] = $session->getSize();
$t->data['attributes'] = $attributes; $t->data['attributes'] = $attributes;
$t->data['icon'] = 'bino.png'; $t->data['icon'] = 'bino.png';
$t->data['logout'] = null; $t->data['logouturl'] = '/' . $config->getBaseURL() . 'wsfed/sp/initSLO.php?RelayState=/' . $config->getBaseURL() . 'logout.php';
$t->show(); $t->show();
......
<?php
require_once('../../_include.php');
$config = SimpleSAML_Configuration::getInstance();
$session = SimpleSAML_Session::getInstance();
SimpleSAML_Logger::info('WS-Fed - SP.initSLO: Accessing WS-Fed SP initSLO script');
if (!$config->getValue('enable.wsfed-sp', false))
SimpleSAML_Utilities::fatalError($session->getTrackID(), 'NOACCESS');
if (isset($_REQUEST['RelayState'])) {
$returnTo = $_REQUEST['RelayState'];
} else {
SimpleSAML_Utilities::fatalError($session->getTrackID(), 'NORELAYSTATE');
}
if (isset($session) ) {
try {
$metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
$idpentityid = $session->getIdP();
$spentityid = isset($_GET['spentityid']) ? $_GET['spentityid'] : $metadata->getMetaDataCurrentEntityID();
/**
* Create a logout request
*/
$session->doLogout();
SimpleSAML_Logger::info('WS-Fed - SP.initSLO: SP (' . $spentityid . ') is sending logout request to IdP (' . $idpentityid . ')');
$idpmeta = $metadata->getMetaData($idpentityid, 'wsfed-idp-remote');
SimpleSAML_Utilities::redirect($idpmeta['prp'], array(
'wa' => 'wsignout1.0',
'wct' => gmdate('Y-m-d\TH:i:s\Z', time()),
'wtrealm' => $spentityid,
'wctx' => $returnTo
));
} catch(Exception $exception) {
SimpleSAML_Utilities::fatalError($session->getTrackID(), 'CREATEREQUEST', $exception);
}
} else {
SimpleSAML_Logger::info('WS-Fed - SP.initSLO: User is already logged out. Go back to relaystate');
SimpleSAML_Utilities::redirect($returnTo);
}
?>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment