From 57edb42a58bbec98063345d50da52197721c16f0 Mon Sep 17 00:00:00 2001
From: Olav Morken <olav.morken@uninett.no>
Date: Thu, 13 Aug 2009 12:00:19 +0000
Subject: [PATCH] SAML2: Trim text nodes which are parsed.

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@1662 44740490-163a-0410-bde0-09ae8108e29a
---
 lib/SAML2/Assertion.php      | 8 ++++----
 lib/SAML2/AttributeQuery.php | 2 +-
 lib/SAML2/LogoutRequest.php  | 2 +-
 lib/SAML2/Message.php        | 2 +-
 lib/SAML2/StatusResponse.php | 2 +-
 lib/SAML2/Utils.php          | 4 ++--
 6 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/lib/SAML2/Assertion.php b/lib/SAML2/Assertion.php
index e08c87e5a..327e104a0 100644
--- a/lib/SAML2/Assertion.php
+++ b/lib/SAML2/Assertion.php
@@ -194,7 +194,7 @@ class SAML2_Assertion implements SAML2_SignedElement {
 		if (empty($issuer)) {
 			throw new Exception('Missing <saml:Issuer> in assertion.');
 		}
-		$this->issuer = $issuer[0]->textContent;
+		$this->issuer = trim($issuer[0]->textContent);
 
 		$this->parseSubject($xml);
 		$this->parseConditions($xml);
@@ -316,7 +316,7 @@ class SAML2_Assertion implements SAML2_SignedElement {
 			case 'AudienceRestriction':
 				$audiences = SAML2_Utils::xpQuery($node, './saml:Audience');
 				foreach ($audiences as &$audience) {
-					$audience = $audience->textContent;
+					$audience = trim($audience->textContent);
 				}
 				if ($this->validAudiences === NULL) {
 					/* The first (and probably last) AudienceRestriction element. */
@@ -388,7 +388,7 @@ class SAML2_Assertion implements SAML2_SignedElement {
 		}
 		$accr = $accr[0];
 
-		$this->authnContext = $accr->textContent;
+		$this->authnContext = trim($accr->textContent);
 	}
 
 
@@ -428,7 +428,7 @@ class SAML2_Assertion implements SAML2_SignedElement {
 
 			$values = SAML2_Utils::xpQuery($attribute, './saml:AttributeValue');
 			foreach ($values as $value) {
-				$this->attributes[$name][] = $value->textContent;
+				$this->attributes[$name][] = trim($value->textContent);
 			}
 		}
 	}
diff --git a/lib/SAML2/AttributeQuery.php b/lib/SAML2/AttributeQuery.php
index 69b31bb63..3be052bd3 100644
--- a/lib/SAML2/AttributeQuery.php
+++ b/lib/SAML2/AttributeQuery.php
@@ -82,7 +82,7 @@ class SAML2_AttributeQuery extends SAML2_SubjectQuery {
 
 			$values = SAML2_Utils::xpQuery($attribute, './saml:AttributeValue');
 			foreach ($values as $value) {
-				$this->attributes[$name][] = $value->textContent;
+				$this->attributes[$name][] = trim($value->textContent);
 			}
 		}
 	}
diff --git a/lib/SAML2/LogoutRequest.php b/lib/SAML2/LogoutRequest.php
index f239c9a01..c0718e45b 100644
--- a/lib/SAML2/LogoutRequest.php
+++ b/lib/SAML2/LogoutRequest.php
@@ -45,7 +45,7 @@ class SAML2_LogoutRequest extends SAML2_Request {
 
 		$sessionIndex = SAML2_Utils::xpQuery($xml, './samlp:SessionIndex');
 		if (!empty($sessionIndex)) {
-			$this->sessionIndex = $sessionIndex[0]->textContent;
+			$this->sessionIndex = trim($sessionIndex[0]->textContent);
 		}
 	}
 
diff --git a/lib/SAML2/Message.php b/lib/SAML2/Message.php
index 735b9ac65..b135eca87 100644
--- a/lib/SAML2/Message.php
+++ b/lib/SAML2/Message.php
@@ -142,7 +142,7 @@ abstract class SAML2_Message implements SAML2_SignedElement {
 
 		$issuer = SAML2_Utils::xpQuery($xml, './saml:Issuer');
 		if (!empty($issuer)) {
-			$this->issuer = $issuer[0]->textContent;
+			$this->issuer = trim($issuer[0]->textContent);
 		}
 
 
diff --git a/lib/SAML2/StatusResponse.php b/lib/SAML2/StatusResponse.php
index 8093da30c..cb7422136 100644
--- a/lib/SAML2/StatusResponse.php
+++ b/lib/SAML2/StatusResponse.php
@@ -83,7 +83,7 @@ abstract class SAML2_StatusResponse extends SAML2_Message {
 
 		$message = SAML2_Utils::xpQuery($status, './samlp:StatusMessage');
 		if (!empty($message)) {
-			$this->status['Message'] = $message[0]->textContent;
+			$this->status['Message'] = trim($message[0]->textContent);
 		}
 	}
 
diff --git a/lib/SAML2/Utils.php b/lib/SAML2/Utils.php
index 84bfa347b..f62a06052 100644
--- a/lib/SAML2/Utils.php
+++ b/lib/SAML2/Utils.php
@@ -68,7 +68,7 @@ class SAML2_Utils {
 		/* Now we extract all available X509 certificates in the signature element. */
 		$certificates = array();
 		foreach (self::xpQuery($signatureElement, './ds:KeyInfo/ds:X509Data/ds:X509Certificate') as $certNode) {
-			$certData = $certNode->textContent;
+			$certData = trim($certNode->textContent);
 			$certData = str_replace(array("\r", "\n", "\t", ' '), '', $certData);
 			$certificates[] = $certData;
 		}
@@ -198,7 +198,7 @@ class SAML2_Utils {
 	 */
 	public static function parseNameId(DOMElement $xml) {
 
-		$ret = array('Value' => $xml->textContent);
+		$ret = array('Value' => trim($xml->textContent));
 
 		foreach (array('NameQualifier', 'SPNameQualifier', 'Format') as $attr) {
 			if ($xml->hasAttribute($attr)) {
-- 
GitLab