summaryrefslogtreecommitdiffstats
path: root/lib/SimpleSAML/Metadata/MetaDataStorageHandler.php
diff options
context:
space:
mode:
authorAndreas Åkre Solberg <andreas.solberg@uninett.no>2008-08-25 16:45:41 +0000
committerAndreas Åkre Solberg <andreas.solberg@uninett.no>2008-08-25 16:45:41 +0000
commit50ac409576b5dd1a8064bca555ca5daf4e549441 (patch)
treec4df45ae202ef65ea1362aced075def1d87ffb86 /lib/SimpleSAML/Metadata/MetaDataStorageHandler.php
parente2f779bbc70a53a687f60171980b900cf65fb052 (diff)
downloadsimplesamlphp-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.php30
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) {