Skip to content

Commit 6906009

Browse files
committed
feature #217 Rename NullUser to ClientCredentialsUser (ajgarlag)
This PR was squashed before being merged into the 0.9-dev branch. Discussion ---------- Rename `NullUser` to `ClientCredentialsUser` This class represents an access token obtained using the client credentials grant. It's a BC change. Commits ------- 980d1f8 Bump branch alias (BC change) 7bf2105 Rename `NullUser` to `ClientCredentialsUser`
2 parents 7bd39e5 + 980d1f8 commit 6906009

File tree

5 files changed

+29
-17
lines changed

5 files changed

+29
-17
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
},
4848
"extra": {
4949
"branch-alias": {
50-
"dev-master": "0.9-dev"
50+
"dev-master": "0.10-dev"
5151
}
5252
},
5353
"minimum-stability": "dev"

src/Security/Authenticator/OAuth2Authenticator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use League\Bundle\OAuth2ServerBundle\Security\Exception\OAuth2AuthenticationException;
99
use League\Bundle\OAuth2ServerBundle\Security\Exception\OAuth2AuthenticationFailedException;
1010
use League\Bundle\OAuth2ServerBundle\Security\Passport\Badge\ScopeBadge;
11-
use League\Bundle\OAuth2ServerBundle\Security\User\NullUser;
11+
use League\Bundle\OAuth2ServerBundle\Security\User\ClientCredentialsUser;
1212
use League\OAuth2\Server\Exception\OAuthServerException;
1313
use League\OAuth2\Server\ResourceServer;
1414
use Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface;
@@ -89,7 +89,7 @@ public function doAuthenticate(Request $request) /* : Passport */
8989
/** @psalm-suppress MixedInferredReturnType */
9090
$userLoader = function (string $userIdentifier) use ($oauthClientId): UserInterface {
9191
if ('' === $userIdentifier || $oauthClientId === $userIdentifier) {
92-
return new NullUser();
92+
return new ClientCredentialsUser($oauthClientId);
9393
}
9494
if (!method_exists($this->userProvider, 'loadUserByIdentifier')) {
9595
/**

src/Security/User/NullUser.php renamed to src/Security/User/ClientCredentialsUser.php

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,29 @@
1111
*
1212
* @author Mathias Arlaud <mathias.arlaud@gmail.com>
1313
*/
14-
final class NullUser implements UserInterface
14+
final class ClientCredentialsUser implements UserInterface
1515
{
16+
private string $clientId;
17+
18+
/**
19+
* @param non-empty-string $clientId
20+
*/
21+
public function __construct(string $clientId)
22+
{
23+
$this->clientId = $clientId;
24+
}
25+
1626
/**
1727
* @psalm-mutation-free
1828
*/
1929
public function getUsername(): string
2030
{
21-
return '';
31+
return $this->getUserIdentifier();
2232
}
2333

2434
public function getUserIdentifier(): string
2535
{
26-
return '';
36+
return $this->clientId;
2737
}
2838

2939
/**

tests/Fixtures/SecurityTestController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace League\Bundle\OAuth2ServerBundle\Tests\Fixtures;
66

7-
use League\Bundle\OAuth2ServerBundle\Security\User\NullUser;
7+
use League\Bundle\OAuth2ServerBundle\Security\User\ClientCredentialsUser;
88
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
99
use Symfony\Component\HttpFoundation\Response;
1010
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@@ -28,7 +28,7 @@ public function helloAction(): Response
2828
$user = $this->getUser();
2929

3030
return new Response(
31-
\sprintf('Hello, %s', null === $user || $user instanceof NullUser ? 'guest' : (method_exists($user, 'getUserIdentifier') ? $user->getUserIdentifier() : $user->getUsername()))
31+
\sprintf('Hello, %s', null === $user || $user instanceof ClientCredentialsUser ? 'guest' : (method_exists($user, 'getUserIdentifier') ? $user->getUserIdentifier() : $user->getUsername()))
3232
);
3333
}
3434

tests/Unit/OAuth2AuthenticatorTest.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use League\Bundle\OAuth2ServerBundle\Security\Authenticator\OAuth2Authenticator;
88
use League\Bundle\OAuth2ServerBundle\Security\Exception\OAuth2AuthenticationFailedException;
99
use League\Bundle\OAuth2ServerBundle\Security\Passport\Badge\ScopeBadge;
10-
use League\Bundle\OAuth2ServerBundle\Security\User\NullUser;
10+
use League\Bundle\OAuth2ServerBundle\Security\User\ClientCredentialsUser;
1111
use League\OAuth2\Server\Exception\OAuthServerException;
1212
use League\OAuth2\Server\ResourceServer;
1313
use Nyholm\Psr7\ServerRequest;
@@ -93,7 +93,7 @@ public function testAuthenticateCreatePassport(): void
9393
$passport->getUser();
9494
}
9595

96-
public function testAuthenticateCreatePassportWithNullUser(): void
96+
public function testAuthenticateCreatePassportWithClientCredentialsUser(): void
9797
{
9898
$serverRequest = (new ServerRequest('GET', '/foo'))
9999
->withAttribute('oauth_access_token_id', 'accessTokenId')
@@ -127,7 +127,7 @@ public function testAuthenticateCreatePassportWithNullUser(): void
127127
/** @var Passport $passport */
128128
$passport = $authenticator->authenticate(new Request());
129129

130-
$this->assertInstanceOf(NullUser::class, $passport->getUser());
130+
$this->assertInstanceOf(ClientCredentialsUser::class, $passport->getUser());
131131
}
132132

133133
/**
@@ -140,10 +140,10 @@ public function testCreateAuthenticatedToken(): void
140140
}
141141

142142
if (!class_exists(UserBadge::class)) {
143-
$userBadge = new NullUser();
143+
$userBadge = new ClientCredentialsUser('oauthClientId');
144144
} else {
145-
$userBadge = new UserBadge('userIdentifier', static function (): UserInterface {
146-
return new NullUser();
145+
$userBadge = new UserBadge('oauthClientId', static function (): UserInterface {
146+
return new ClientCredentialsUser('oauthClientId');
147147
});
148148
}
149149

@@ -164,7 +164,8 @@ public function testCreateAuthenticatedToken(): void
164164

165165
$this->assertSame(['scope_one', 'scope_two'], $token->getScopes());
166166
$this->assertSame('accessTokenId', $token->getCredentials());
167-
$this->assertInstanceOf(NullUser::class, $token->getUser());
167+
$this->assertInstanceOf(ClientCredentialsUser::class, $token->getUser());
168+
$this->assertSame('oauthClientId', $token->getUser()->getUserIdentifier());
168169
$this->assertTrue($token->isAuthenticated());
169170
}
170171

@@ -175,7 +176,7 @@ public function testCreateToken(): void
175176
}
176177

177178
$userBadge = new UserBadge('userIdentifier', static function (): UserInterface {
178-
return new NullUser();
179+
return new ClientCredentialsUser('client_one');
179180
});
180181

181182
$passport = new SelfValidatingPassport($userBadge, [
@@ -194,7 +195,8 @@ public function testCreateToken(): void
194195

195196
$this->assertSame(['scope_one', 'scope_two'], $token->getScopes());
196197
$this->assertSame('accessTokenId', $token->getCredentials());
197-
$this->assertInstanceOf(NullUser::class, $token->getUser());
198+
$this->assertInstanceOf(ClientCredentialsUser::class, $token->getUser());
199+
$this->assertSame('client_one', $token->getUser()->getUserIdentifier());
198200
}
199201
}
200202

0 commit comments

Comments
 (0)