From 8c7e33d0e102e68b35515975fb4ed5eb6ff24b8a Mon Sep 17 00:00:00 2001 From: Ishan Jayamanne Date: Mon, 4 Apr 2022 21:40:46 +1200 Subject: [PATCH] Generate valid Guid to match the validation. --- src/Control/SAMLController.php | 3 +-- src/Helpers/SAMLHelper.php | 2 +- tests/php/Helpers/SAMLHelperTest.php | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Control/SAMLController.php b/src/Control/SAMLController.php index cc280ee..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}. @@ -163,6 +161,7 @@ public function acs() } $this->extend('updateAttributes', $attributes); + $this->extend('updateGuid', $guid); $fieldToClaimMap = array_flip(Member::config()->claims_field_mappings); 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); } }