diff --git a/lib/SimpleSAML/XML/Shib13/AuthnResponse.php b/lib/SimpleSAML/XML/Shib13/AuthnResponse.php index e56bd93960c0ca55f2fb88f49786533cc8ce04ed..143ba3a832e50cf48b957c9c0fee60e669a32d47 100644 --- a/lib/SimpleSAML/XML/Shib13/AuthnResponse.php +++ b/lib/SimpleSAML/XML/Shib13/AuthnResponse.php @@ -193,6 +193,7 @@ class SimpleSAML_XML_Shib13_AuthnResponse extends SimpleSAML_XML_AuthnResponse { $md = $this->metadata->getMetadata($this->getIssuer(), 'shib13-idp-remote'); + $base64 = isset($md['base64attributes']) ? $md['base64attributes'] : false; //$base64 = isset($md['base64attributes']) ? $md['base64attributes'] : false; @@ -251,7 +252,18 @@ class SimpleSAML_XML_Shib13_AuthnResponse extends SimpleSAML_XML_AuthnResponse { $values = array(); // Traverse Values - foreach ($attribute->AttributeValue AS $val) { + foreach ($attribute->AttributeValue AS $newvalue) { + + if ($base64) { + $encodedvalues = explode('_', $newvalue); + foreach($encodedvalues AS $v) { + $values[] = base64_decode($v); + } + } else { + + $values[] = $newvalue; + } + $values[] = (string) $val; }