Skip to content

Commit 324425d

Browse files
committed
Merge branch '6.4' into 7.2
* 6.4: [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 6e51e21 + a69c17e commit 324425d

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

AccessToken/Oidc/OidcTokenHandler.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,11 @@ public function getUserBadgeFrom(string $accessToken): UserBadge
101101
}
102102

103103
// UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate
104-
return new UserBadge($claims[$this->claim], new FallbackUserLoader(fn () => $this->createUser($claims)), $claims);
104+
return new UserBadge($claims[$this->claim], new FallbackUserLoader(function () use ($claims) {
105+
$claims['user_identifier'] = $claims[$this->claim];
106+
107+
return $this->createUser($claims);
108+
}), $claims);
105109
} catch (\Exception $e) {
106110
$this->logger?->error('An error occurred while decoding and validating the token.', [
107111
'error' => $e->getMessage(),

AccessToken/Oidc/OidcUserInfoTokenHandler.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ public function getUserBadgeFrom(string $accessToken): UserBadge
4747
}
4848

4949
// UserLoader argument can be overridden by a UserProvider on AccessTokenAuthenticator::authenticate
50-
return new UserBadge($claims[$this->claim], new FallbackUserLoader(fn () => $this->createUser($claims)), $claims);
50+
return new UserBadge($claims[$this->claim], new FallbackUserLoader(function () use ($claims) {
51+
$claims['user_identifier'] = $claims[$this->claim];
52+
53+
return $this->createUser($claims);
54+
}), $claims);
5155
} catch (\Exception $e) {
5256
$this->logger?->error('An error occurred on OIDC server.', [
5357
'error' => $e->getMessage(),

Tests/AccessToken/Oidc/OidcTokenHandlerTest.php

+2-2
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

+2-2
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)