From 847a255ba45bdd3f9d3fa55a3bfbdeab96621ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no> Date: Wed, 30 Jan 2008 10:38:00 +0000 Subject: [PATCH] Improved the SAML messages templates regarding XML namespaces optimalization etc. in the logout request and response. git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@221 44740490-163a-0410-bde0-09ae8108e29a --- lib/SimpleSAML/Session.php | 1 - lib/SimpleSAML/XML/SAML20/LogoutRequest.php | 43 ++++++-------------- lib/SimpleSAML/XML/SAML20/LogoutResponse.php | 26 ++++++------ 3 files changed, 27 insertions(+), 43 deletions(-) diff --git a/lib/SimpleSAML/Session.php b/lib/SimpleSAML/Session.php index de749e2b7..ef9ccefe3 100644 --- a/lib/SimpleSAML/Session.php +++ b/lib/SimpleSAML/Session.php @@ -5,7 +5,6 @@ require_once('SimpleSAML/Utilities.php'); require_once('SimpleSAML/Session.php'); require_once('SimpleSAML/SessionHandler.php'); require_once('SimpleSAML/Metadata/MetaDataStorageHandler.php'); -require_once('SimpleSAML/XML/AuthnResponse.php'); /** * The Session class holds information about a user session, and everything attached to it. diff --git a/lib/SimpleSAML/XML/SAML20/LogoutRequest.php b/lib/SimpleSAML/XML/SAML20/LogoutRequest.php index 50b3dcd37..dd595a246 100644 --- a/lib/SimpleSAML/XML/SAML20/LogoutRequest.php +++ b/lib/SimpleSAML/XML/SAML20/LogoutRequest.php @@ -130,36 +130,19 @@ class SimpleSAML_XML_SAML20_LogoutRequest { $issueInstant = self::generateIssueInstant(); $destination = $receivermd['SingleLogoutService']; - -/* - $spNameQualifier = $md['spNameQualifier']; - $nameidformat = isset($md['NameIDformat']) ? - $md['NameIDformat'] : - 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'; - */ - $logoutRequest = "<samlp:LogoutRequest " . - "xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\" " . - "ID=\"" . $id . "\" " . - "Version=\"2.0\" " . - "Destination=\"" . htmlspecialchars($destination) . "\" " . - "IssueInstant=\"" . $issueInstant . "\"> " . - "<saml:Issuer " . - "xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\">" . - htmlspecialchars($issuer) . - "</saml:Issuer>" . - "<saml:NameID " . - "xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\" " . -// "NameQualifier=\"" . $nameId["NameQualifier"] . "\" " . -// "SPNameQualifier=\"" . $nameId["SPNameQualifier"] . "\" " . - "Format=\"" . htmlspecialchars($nameid['Format']) . "\">" . - htmlspecialchars($nameid['value']) . - "</saml:NameID>" . - "<samlp:SessionIndex " . - "xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\">" . - htmlspecialchars($sessionindex) . - "</samlp:SessionIndex>" . - "</samlp:LogoutRequest>"; - + + $logoutRequest = '<samlp:LogoutRequest + xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" + xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" + ID="' . $id . '" Version="2.0" + Destination="' . htmlspecialchars($destination) . '" + IssueInstant="' . $issueInstant . '"> + <saml:Issuer >' . htmlspecialchars($issuer) . '</saml:Issuer> + <saml:NameID Format="' . htmlspecialchars($nameid['Format']) . '">' . htmlspecialchars($nameid['value']) . '</saml:NameID> + <samlp:SessionIndex>' . htmlspecialchars($sessionindex) . '</samlp:SessionIndex> +</samlp:LogoutRequest> +'; + return $logoutRequest; } diff --git a/lib/SimpleSAML/XML/SAML20/LogoutResponse.php b/lib/SimpleSAML/XML/SAML20/LogoutResponse.php index 84fe044fc..80fe4b0bb 100644 --- a/lib/SimpleSAML/XML/SAML20/LogoutResponse.php +++ b/lib/SimpleSAML/XML/SAML20/LogoutResponse.php @@ -112,18 +112,20 @@ class SimpleSAML_XML_SAML20_LogoutResponse { $destination = $receivermd['SingleLogoutService']; - $samlResponse = '<samlp:LogoutResponse xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" -ID="_' . $id . '" Version="2.0" IssueInstant="' . $issueInstant . '" Destination="'. htmlspecialchars($destination). '" InResponseTo="' . htmlspecialchars($inresponseto) . '"> -<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">' . htmlspecialchars($issuer) . '</saml:Issuer> -<samlp:Status xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> -<samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" -Value="urn:oasis:names:tc:SAML:2.0:status:Success"> -</samlp:StatusCode> -<samlp:StatusMessage xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> -Successfully logged out from service ' . htmlspecialchars($issuer) . ' -</samlp:StatusMessage> -</samlp:Status> -</samlp:LogoutResponse>'; + $samlResponse = '<samlp:LogoutResponse + xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" + xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" + ID="' . $id . '" Version="2.0" + IssueInstant="' . $issueInstant . '" + Destination="'. htmlspecialchars($destination). '" + InResponseTo="' . htmlspecialchars($inresponseto) . '"> + <saml:Issuer>' . htmlspecialchars($issuer) . '</saml:Issuer> + <samlp:Status> + <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"> </samlp:StatusCode> + <samlp:StatusMessage>Successfully logged out from service ' . htmlspecialchars($issuer) . '</samlp:StatusMessage> + </samlp:Status> +</samlp:LogoutResponse> +'; return $samlResponse; } -- GitLab