diff --git a/lib/SAML2/EncryptedAssertion.php b/lib/SAML2/EncryptedAssertion.php index 5084ebb6d40552090ba75eea7a116f64d92c6a8a..9c69ad08cdee0c374a33863c843b00ccd05bca8a 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 95b165c185c77ac27581ca0c771131baca78d00c..652212e5a56de7f7852f6d9976599173292d2b01 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:');