Skip to content

Commit 7cbffdf

Browse files
Jeroenynicolas-grekas
authored andcommitted
[Security] Support loading UserBadge directly from accessToken
1 parent 17cf5da commit 7cbffdf

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

DependencyInjection/Security/Factory/AccessTokenFactory.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ public function createAuthenticator(ContainerBuilder $container, string $firewal
7979

8080
$container
8181
->setDefinition($authenticatorId, new ChildDefinition('security.authenticator.access_token'))
82-
->replaceArgument(0, $userProvider)
83-
->replaceArgument(1, new Reference($config['token_handler']))
84-
->replaceArgument(2, new Reference($extractorId))
82+
->replaceArgument(0, new Reference($config['token_handler']))
83+
->replaceArgument(1, new Reference($extractorId))
84+
->replaceArgument(2, $userProvider)
8585
->replaceArgument(3, $successHandler)
8686
->replaceArgument(4, $failureHandler)
8787
->replaceArgument(5, $config['realm'])

Resources/config/security_authenticator_access_token.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
->set('security.authenticator.access_token', AccessTokenAuthenticator::class)
2727
->abstract()
2828
->args([
29-
abstract_arg('user provider'),
3029
abstract_arg('access token handler'),
3130
abstract_arg('access token extractor'),
3231
null,
3332
null,
3433
null,
34+
null,
3535
])
3636
->call('setTranslator', [service('translator')->ignoreOnInvalid()])
3737

Tests/Functional/Bundle/AccessTokenBundle/Security/Handler/AccessTokenHandler.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,18 @@
1313

1414
use Symfony\Component\Security\Core\Exception\BadCredentialsException;
1515
use Symfony\Component\Security\Http\AccessToken\AccessTokenHandlerInterface;
16+
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
1617

1718
class AccessTokenHandler implements AccessTokenHandlerInterface
1819
{
1920
public function __construct()
2021
{
2122
}
2223

23-
public function getUserIdentifierFrom(string $accessToken): string
24+
public function getUserBadgeFrom(string $accessToken): UserBadge
2425
{
2526
return match ($accessToken) {
26-
'VALID_ACCESS_TOKEN' => 'dunglas',
27+
'VALID_ACCESS_TOKEN' => new UserBadge('dunglas'),
2728
default => throw new BadCredentialsException('Invalid credentials.'),
2829
};
2930
}

0 commit comments

Comments
 (0)