diff --git a/modules/saml/lib/IdP/SAML2.php b/modules/saml/lib/IdP/SAML2.php index d614a3f95fe6f9008f5b0a0c157d63d0244fd669..20897dcf370d99ec59cc5ddf1a1a1a72d5874379 100644 --- a/modules/saml/lib/IdP/SAML2.php +++ b/modules/saml/lib/IdP/SAML2.php @@ -698,12 +698,17 @@ class sspmod_saml_IdP_SAML2 { continue; } + $attrval = $value; + if ($value instanceof DOMNodeList) { + $attrval = new \SAML2\XML\saml\AttributeValue($value->item(0)->parentNode); + } + switch ($encoding) { case 'string': - $value = (string)$value; + $value = (string)$attrval; break; case 'base64': - $value = base64_encode((string)$value); + $value = base64_encode((string)$attrval); break; case 'raw': if (is_string($value)) {