diff --git a/modules/core/lib/Auth/Process/AttributeCopy.php b/modules/core/lib/Auth/Process/AttributeCopy.php index bd9b9fd83b9bcc0cdf2ad17515165fbe34b13b35..4b83e05573035f26959610ebff176f023e483098 100644 --- a/modules/core/lib/Auth/Process/AttributeCopy.php +++ b/modules/core/lib/Auth/Process/AttributeCopy.php @@ -40,7 +40,7 @@ class sspmod_core_Auth_Process_AttributeCopy extends SimpleSAML_Auth_ProcessingF throw new Exception('Invalid source attribute name: ' . var_export($source, TRUE)); } - if(!is_string($destination)) { + if(!is_string($destination) && !is_array($destination)) { throw new Exception('Invalid destination attribute name: ' . var_export($destination, TRUE)); } @@ -62,7 +62,13 @@ class sspmod_core_Auth_Process_AttributeCopy extends SimpleSAML_Auth_ProcessingF foreach($attributes as $name => $values) { if (array_key_exists($name,$this->map)){ - $attributes[$this->map[$name]] = $values; + if (!is_array($this->map[$name])) { + $attributes[$this->map[$name]] = $values; + } else { + foreach ($this->map[$name] as $to_map) { + $attributes[$to_map] = $values; + } + } } }