From 42c5dc3b299f918cf267ba097d6356a5f2029ef7 Mon Sep 17 00:00:00 2001
From: Olav Morken <olav.morken@uninett.no>
Date: Mon, 13 Sep 2010 07:27:53 +0000
Subject: [PATCH] Utilities::debugMessage: Allow DOMelement as $message
 parameter.

git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2546 44740490-163a-0410-bde0-09ae8108e29a
---
 lib/SAML2/EncryptedAssertion.php | 6 ++----
 lib/SimpleSAML/Utilities.php     | 8 ++++++--
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/lib/SAML2/EncryptedAssertion.php b/lib/SAML2/EncryptedAssertion.php
index 5084ebb6d..9c69ad08c 100644
--- a/lib/SAML2/EncryptedAssertion.php
+++ b/lib/SAML2/EncryptedAssertion.php
@@ -46,8 +46,7 @@ class SAML2_EncryptedAssertion {
 
 		$xml = $assertion->toXML();
 
-		$xmlStr = $xml->ownerDocument->saveXML($xml);
-		SimpleSAML_Utilities::debugMessage($xmlStr, 'encrypt');
+		SimpleSAML_Utilities::debugMessage($xml, 'encrypt');
 
 		$enc = new XMLSecEnc();
 		$enc->setNode($xml);
@@ -88,8 +87,7 @@ class SAML2_EncryptedAssertion {
 
 		$assertionXML = SAML2_Utils::decryptElement($this->encryptedData, $inputKey);
 
-		$xmlStr = $assertionXML->ownerDocument->saveXML($assertionXML);
-		SimpleSAML_Utilities::debugMessage($xmlStr, 'decrypt');
+		SimpleSAML_Utilities::debugMessage($assertionXML, 'decrypt');
 
 		return new SAML2_Assertion($assertionXML);
 	}
diff --git a/lib/SimpleSAML/Utilities.php b/lib/SimpleSAML/Utilities.php
index 95b165c18..652212e5a 100644
--- a/lib/SimpleSAML/Utilities.php
+++ b/lib/SimpleSAML/Utilities.php
@@ -1910,11 +1910,11 @@ class SimpleSAML_Utilities {
 	/**
 	 * Helper function to log messages that we send or receive.
 	 *
-	 * @param string $message  The message, as an XML string.
+	 * @param string|DOMElement $message  The message, as an XML string or an XML element.
 	 * @param string $type  Whether this message is sent or received, encrypted or decrypted.
 	 */
 	public static function debugMessage($message, $type) {
-		assert('is_string($message)');
+		assert('is_string($message) || $message instanceof DOMElement');
 
 		$globalConfig = SimpleSAML_Configuration::getInstance();
 		if (!$globalConfig->getBoolean('debug', FALSE)) {
@@ -1922,6 +1922,10 @@ class SimpleSAML_Utilities {
 			return;
 		}
 
+		if ($message instanceof DOMElement) {
+			$message = $message->ownerDocument->saveXML($message);
+		}
+
 		switch ($type) {
 		case 'in':
 			SimpleSAML_Logger::debug('Received message:');
-- 
GitLab