diff options
Diffstat (limited to 'lib/SimpleSAML/XML/SAML20/LogoutRequest.php')
-rw-r--r-- | lib/SimpleSAML/XML/SAML20/LogoutRequest.php | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/SimpleSAML/XML/SAML20/LogoutRequest.php b/lib/SimpleSAML/XML/SAML20/LogoutRequest.php index 974ce53..9b38ac2 100644 --- a/lib/SimpleSAML/XML/SAML20/LogoutRequest.php +++ b/lib/SimpleSAML/XML/SAML20/LogoutRequest.php @@ -121,6 +121,12 @@ class SimpleSAML_XML_SAML20_LogoutRequest { $issuermd = $this->metadata->getMetaData($issuer, $issuerset); $receivermd = $this->metadata->getMetaData($receiver, $receiverset); + if ($mode == 'IdP') { + $spnamequalifier = isset($receivermd['SPNameQualifier']) ? $receivermd['SPNameQualifier'] : $receivermd['entityid']; + } else { + $spnamequalifier = isset($issuermd['SPNameQualifier']) ? $issuermd['SPNameQualifier'] : $issuermd['entityid']; + } + $id = self::generateID(); $issueInstant = self::generateIssueInstant(); @@ -133,7 +139,7 @@ class SimpleSAML_XML_SAML20_LogoutRequest { Destination="' . htmlspecialchars($destination) . '" IssueInstant="' . $issueInstant . '"> <saml:Issuer >' . htmlspecialchars($issuer) . '</saml:Issuer> - <saml:NameID Format="' . htmlspecialchars($nameid['Format']) . '">' . htmlspecialchars($nameid['value']) . '</saml:NameID> + <saml:NameID Format="' . htmlspecialchars($nameid['Format']) . '" SPNameQualifier="' . htmlspecialchars($spnamequalifier) . '">' . htmlspecialchars($nameid['value']) . '</saml:NameID> <samlp:SessionIndex>' . htmlspecialchars($sessionindex) . '</samlp:SessionIndex> </samlp:LogoutRequest> '; |