diff --git a/src/Control/SAMLController.php b/src/Control/SAMLController.php index e53dc52..0ccbcc9 100644 --- a/src/Control/SAMLController.php +++ b/src/Control/SAMLController.php @@ -153,8 +153,6 @@ public function acs() return $this->getRedirect(); } - $this->extend('updateGuid', $guid); - $attributes = $auth->getAttributes(); // Allows setups that map GUID (email format) to email {@see SAMLConfiguration::$expose_guid_as_attribute}. @@ -162,6 +160,9 @@ public function acs() $attributes['GUID'][0] = $guid; } + $this->extend('updateAttributes', $attributes); + $this->extend('updateGuid', $guid); + $fieldToClaimMap = array_flip(Member::config()->claims_field_mappings); // Write a rudimentary member with basic fields on every login, so that we at least have something diff --git a/src/Helpers/SAMLHelper.php b/src/Helpers/SAMLHelper.php index 6993825..0249e7b 100644 --- a/src/Helpers/SAMLHelper.php +++ b/src/Helpers/SAMLHelper.php @@ -124,7 +124,7 @@ public function binToStrGuid($object_guid) $hex_guid_to_guid_str .= substr($hex_guid, 16 - 2 * $k, 2); } $hex_guid_to_guid_str .= '-' . substr($hex_guid, 16, 4); - $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20); + $hex_guid_to_guid_str .= '-' . substr($hex_guid, 20, 12); return strtoupper($hex_guid_to_guid_str); } diff --git a/tests/php/Helpers/SAMLHelperTest.php b/tests/php/Helpers/SAMLHelperTest.php index fd793a3..14df03c 100644 --- a/tests/php/Helpers/SAMLHelperTest.php +++ b/tests/php/Helpers/SAMLHelperTest.php @@ -36,6 +36,6 @@ public function guidProvider() public function testBinToStrGuid() { $result = SAMLHelper::singleton()->binToStrGuid('thequ!ckbrownf0xjumpsov3rthel4zyd06'); - $this->assertSame('71656874-2175-6B63-6272-6F776E6630786A756D70736F7633727468656C347A79643036', $result); + $this->assertSame('71656874-2175-6B63-6272-6F776E663078', $result); } }