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