diff options
author | Andreas Åkre Solberg <andreas.solberg@uninett.no> | 2008-08-25 16:45:41 +0000 |
---|---|---|
committer | Andreas Åkre Solberg <andreas.solberg@uninett.no> | 2008-08-25 16:45:41 +0000 |
commit | 50ac409576b5dd1a8064bca555ca5daf4e549441 (patch) | |
tree | c4df45ae202ef65ea1362aced075def1d87ffb86 /lib/SimpleSAML/Metadata/MetaDataStorageHandler.php | |
parent | e2f779bbc70a53a687f60171980b900cf65fb052 (diff) | |
download | simplesamlphp-50ac409576b5dd1a8064bca555ca5daf4e549441.zip simplesamlphp-50ac409576b5dd1a8064bca555ca5daf4e549441.tar.gz simplesamlphp-50ac409576b5dd1a8064bca555ca5daf4e549441.tar.bz2 |
Adding experimental support for iFrame based logout... Documentation will be added later.
git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@830 44740490-163a-0410-bde0-09ae8108e29a
Diffstat (limited to 'lib/SimpleSAML/Metadata/MetaDataStorageHandler.php')
-rw-r--r-- | lib/SimpleSAML/Metadata/MetaDataStorageHandler.php | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php index a866801..be7d1be 100644 --- a/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php +++ b/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php @@ -87,7 +87,7 @@ class SimpleSAML_Metadata_MetaDataStorageHandler { * @param $set The set we the property comes from. * @return The autogenerated metadata property. */ - public function getGenerated($property, $set = 'saml20-sp-hosted') { + public function getGenerated($property, $set = 'saml20-sp-hosted', $options = array() ) { /* First we check if the user has overridden this property in the metadata. */ try { @@ -115,12 +115,38 @@ class SimpleSAML_Metadata_MetaDataStorageHandler { return $baseurl . 'saml2/sp/SingleLogoutService.php'; } } elseif($set == 'saml20-idp-hosted') { + + $logouttype = 'traditional'; + if (array_key_exists('logouttype', $options)) $logouttype = $options['logouttype']; + if (!in_array($logouttype, array('traditional', 'iframe'))) + throw new Exception('Invalid logout type [' . $logouttype . '] in IdP Hosted Metadata'); + switch ($property) { case 'SingleSignOnService' : return $baseurl . 'saml2/idp/SSOService.php'; case 'SingleLogoutService' : - return $baseurl . 'saml2/idp/SingleLogoutService.php'; + + switch ($logouttype) { + case 'iframe' : + return $baseurl . 'saml2/idp/SingleLogoutServiceiFrame.php'; + + case 'traditional' : + default : + return $baseurl . 'saml2/idp/SingleLogoutService.php'; + } + + case 'SingleLogoutServiceResponse' : + + switch ($logouttype) { + case 'iframe' : + return $baseurl . 'saml2/idp/SingleLogoutServiceiFrameResponse.php'; + + case 'traditional' : + default : + return $baseurl . 'saml2/idp/SingleLogoutService.php'; + } + } } elseif($set == 'shib13-sp-hosted') { switch ($property) { |