diff --git a/modules/core/lib/Auth/Process/AttributeMap.php b/modules/core/lib/Auth/Process/AttributeMap.php index a2d0ac26a99fac3d91008893642526c19b4b81be..8df240c3b9963d18caafea854b6338ec94c24bcc 100644 --- a/modules/core/lib/Auth/Process/AttributeMap.php +++ b/modules/core/lib/Auth/Process/AttributeMap.php @@ -37,7 +37,7 @@ class sspmod_core_Auth_Process_AttributeMap extends SimpleSAML_Auth_ProcessingFi throw new Exception('Invalid attribute name: ' . var_export($origName, TRUE)); } - if(!is_string($newName)) { + if(!is_string($newName) && !is_array($newName)) { throw new Exception('Invalid attribute name: ' . var_export($newName, TRUE)); } @@ -82,8 +82,14 @@ class sspmod_core_Auth_Process_AttributeMap extends SimpleSAML_Auth_ProcessingFi foreach($attributes as $name => $values) { if(array_key_exists($name, $this->map)) { - $attributes[$this->map[$name]] = $values; unset($attributes[$name]); + if(!is_array($this->map[$name])) { + $attributes[$this->map[$name]] = $values; + } else { + foreach($this->map[$name] as $to_map) { + $attributes[$to_map] = $values; + } + } } }