From 1077251f8babcf07c61d2e7fe09ad29522cefe60 Mon Sep 17 00:00:00 2001 From: iglocska Date: Tue, 23 Aug 2022 11:05:07 +0200 Subject: [PATCH] fix: [keycloak] fixed encoding issue with urlencoded usernames created in keycloak --- src/Model/Behavior/AuthKeycloakBehavior.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Model/Behavior/AuthKeycloakBehavior.php b/src/Model/Behavior/AuthKeycloakBehavior.php index ae35957..7f02d12 100644 --- a/src/Model/Behavior/AuthKeycloakBehavior.php +++ b/src/Model/Behavior/AuthKeycloakBehavior.php @@ -409,7 +409,11 @@ class AuthKeycloakBehavior extends Behavior ] ]); } - $newUser = $this->restApiRequest('%s/admin/realms/%s/users?username=' . urlencode($user['username']), [], 'get'); + $newUser = $this->restApiRequest( + '%s/admin/realms/%s/users?username=' . $this->urlencodeEscapeForSprintf(urlencode($user['username'])), + [], + 'get' + ); $users = json_decode($newUser->getStringBody(), true); if (empty($users[0]['id'])) { return false; @@ -527,4 +531,9 @@ class AuthKeycloakBehavior extends Behavior } return $changed; } + + private function urlencodeEscapeForSprintf(string $input): string + { + return str_replace('%', '%%', $input); + } }