diff --git a/modules/saml/lib/Auth/Source/SP.php b/modules/saml/lib/Auth/Source/SP.php index 6d325025483f3bd798484467ca7218f4e4e71cd4..6f14f5c55b9c7becece9c8d3ac574e3da92f89b1 100644 --- a/modules/saml/lib/Auth/Source/SP.php +++ b/modules/saml/lib/Auth/Source/SP.php @@ -221,6 +221,7 @@ class sspmod_saml_Auth_Source_SP extends SimpleSAML_Auth_Source } if (isset($state['saml:NameIDPolicy'])) { + $policy = null; if (is_string($state['saml:NameIDPolicy'])) { $policy = array( 'Format' => (string)$state['saml:NameIDPolicy'], @@ -228,10 +229,12 @@ class sspmod_saml_Auth_Source_SP extends SimpleSAML_Auth_Source ); } elseif (is_array($state['saml:NameIDPolicy'])) { $policy = $state['saml:NameIDPolicy']; - } else { - throw new SimpleSAML_Error_Exception('Invalid value of $state[\'saml:NameIDPolicy\'].'); + } elseif ($state['saml:NameIDPolicy'] === null) { + $policy = array('Format' => \SAML2\Constants::NAMEID_TRANSIENT); + } + if ($policy !== null) { + $ar->setNameIdPolicy($policy); } - $ar->setNameIdPolicy($policy); } if (isset($state['saml:IDPList'])) {