From 6048e7dfbb0692e23dee812f3c00fd29d7cc7636 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaime=20Pe=CC=81rez=20Crespo?= <jaime.perez@uninett.no>
Date: Fri, 26 Jan 2018 12:17:34 +0100
Subject: [PATCH] Replicate functionality in sspmod_saml_Auth_Source_SP.

---
 modules/saml/lib/Auth/Source/SP.php | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/modules/saml/lib/Auth/Source/SP.php b/modules/saml/lib/Auth/Source/SP.php
index 6d3250254..6f14f5c55 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'])) {
-- 
GitLab