diff --git a/lib/SimpleSAML/Metadata/SAMLParser.php b/lib/SimpleSAML/Metadata/SAMLParser.php index 975029129f73d17c039c6110dc3bfdac26f27d8b..db8cc0e39f00efbb19d4c5162e86d6c9d58a1c71 100644 --- a/lib/SimpleSAML/Metadata/SAMLParser.php +++ b/lib/SimpleSAML/Metadata/SAMLParser.php @@ -437,7 +437,9 @@ class SimpleSAML_Metadata_SAMLParser { * - 'entityid': The entity id of the entity described in the metadata. * - 'name': Autogenerated name for this entity. Currently set to the entity id. * - 'SingleSignOnService': String with the url of the SSO service which supports the redirect binding. - * - 'SingleLogoutService': String with the url where we should send logout requests/responses. + * - 'SingleLogoutService': String with the url where we should send logout requests(/responses). + * - 'SingleLogoutServiceResponse': String where we should send logout responses (if this is different from + * the 'SingleLogoutService' endpoint. * - 'certFingerprint': Fingerprint of the X509Certificate from the metadata. * * Metadata must be loaded with one of the parse functions before this function can be called. @@ -477,6 +479,11 @@ class SimpleSAML_Metadata_SAMLParser { } $ret['SingleLogoutService'] = $slo['location']; + /* If the response location is set, include it in the returned metadata. */ + if($slo['responseLocation']) { + $ret['SingleLogoutServiceResponse'] = $slo['responseLocation']; + } + /* Find the certificate fingerprint. */ foreach($idp['keys'] as $key) { @@ -676,7 +683,7 @@ class SimpleSAML_Metadata_SAMLParser { $ep['location'] = $element->getAttribute('Location'); if($element->hasAttribute('ResponseLocation')) { - $ep['responseLocation'] = $element->getAttribute('Location'); + $ep['responseLocation'] = $element->getAttribute('ResponseLocation'); } if($isIndexed) {