Skip to content

Commit 8f9c1c8

Browse files
committed
Merge branch '7.2' into 7.3
* 7.2: [Intl] Update data to ICU 77.1 Correctly convert SIGSYS to its name fix(security): fix OIDC user identifier Do not ignore enum when Autowire attribute in RegisterControllerArgumentLocatorsPass fix RedisCluster seed if REDIS_CLUSTER_HOST env var is not set
2 parents b8a7eee + 324425d commit 8f9c1c8

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

AccessToken/Oidc/OidcTokenHandler.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,11 @@ public function getUserBadgeFrom(string $accessToken): UserBadge
143143
}
144144

145145
// UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate
146-
return new UserBadge($claims[$this->claim], new FallbackUserLoader(fn () => $this->createUser($claims)), $claims);
146+
return new UserBadge($claims[$this->claim], new FallbackUserLoader(function () use ($claims) {
147+
$claims['user_identifier'] = $claims[$this->claim];
148+
149+
return $this->createUser($claims);
150+
}), $claims);
147151
} catch (\Exception $e) {
148152
$this->logger?->error('An error occurred while decoding and validating the token.', [
149153
'error' => $e->getMessage(),

AccessToken/Oidc/OidcUserInfoTokenHandler.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ public function getUserBadgeFrom(string $accessToken): UserBadge
7676
}
7777

7878
// UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate
79-
return new UserBadge($claims[$this->claim], new FallbackUserLoader(fn () => $this->createUser($claims)), $claims);
79+
return new UserBadge($claims[$this->claim], new FallbackUserLoader(function () use ($claims) {
80+
$claims['user_identifier'] = $claims[$this->claim];
81+
82+
return $this->createUser($claims);
83+
}), $claims);
8084
} catch (\Exception $e) {
8185
$this->logger?->error('An error occurred on OIDC server.', [
8286
'error' => $e->getMessage(),

Tests/AccessToken/Oidc/OidcTokenHandlerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function testGetsUserIdentifierFromSignedToken(string $claim, string $exp
4848
'email' => '[email protected]',
4949
];
5050
$token = $this->buildJWS(json_encode($claims));
51-
$expectedUser = new OidcUser(...$claims);
51+
$expectedUser = new OidcUser(...$claims, userIdentifier: $claims[$claim]);
5252

5353
$loggerMock = $this->createMock(LoggerInterface::class);
5454
$loggerMock->expects($this->never())->method('error');
@@ -67,7 +67,7 @@ public function testGetsUserIdentifierFromSignedToken(string $claim, string $exp
6767
$this->assertInstanceOf(OidcUser::class, $actualUser);
6868
$this->assertEquals($expectedUser, $actualUser);
6969
$this->assertEquals($claims, $userBadge->getAttributes());
70-
$this->assertEquals($claims['sub'], $actualUser->getUserIdentifier());
70+
$this->assertEquals($claims[$claim], $actualUser->getUserIdentifier());
7171
}
7272

7373
public static function getClaims(): iterable

Tests/AccessToken/Oidc/OidcUserInfoTokenHandlerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public function testGetsUserIdentifierFromOidcServerResponse(string $claim, stri
3333
'sub' => 'e21bf182-1538-406e-8ccb-e25a17aba39f',
3434
'email' => '[email protected]',
3535
];
36-
$expectedUser = new OidcUser(...$claims);
36+
$expectedUser = new OidcUser(...$claims, userIdentifier: $claims[$claim]);
3737

3838
$responseMock = $this->createMock(ResponseInterface::class);
3939
$responseMock->expects($this->once())
@@ -52,7 +52,7 @@ public function testGetsUserIdentifierFromOidcServerResponse(string $claim, stri
5252
$this->assertInstanceOf(OidcUser::class, $actualUser);
5353
$this->assertEquals($expectedUser, $actualUser);
5454
$this->assertEquals($claims, $userBadge->getAttributes());
55-
$this->assertEquals($claims['sub'], $actualUser->getUserIdentifier());
55+
$this->assertEquals($claims[$claim], $actualUser->getUserIdentifier());
5656
}
5757

5858
public static function getClaims(): iterable

0 commit comments

Comments
 (0)