Skip to content

Commit 1065a8d

Browse files
Using EventDispatchable instead of EmitterAwareInterface
Signed-off-by: Eugene Borovov <[email protected]>
1 parent cc7548d commit 1065a8d

11 files changed

+49
-50
lines changed

src/AuthorizationServer.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111

1212
use DateInterval;
1313
use Defuse\Crypto\Key;
14-
use League\Event\EmitterAwareInterface;
15-
use League\Event\EmitterAwareTrait;
14+
use League\OAuth2\Server\Events\EventDispatchableInterface;
15+
use League\OAuth2\Server\Events\EventDispatchableTrait;
1616
use League\OAuth2\Server\Exception\OAuthServerException;
1717
use League\OAuth2\Server\Grant\GrantTypeInterface;
1818
use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface;
@@ -25,9 +25,9 @@
2525
use Psr\Http\Message\ResponseInterface;
2626
use Psr\Http\Message\ServerRequestInterface;
2727

28-
class AuthorizationServer implements EmitterAwareInterface
28+
class AuthorizationServer implements EventDispatchableInterface
2929
{
30-
use EmitterAwareTrait;
30+
use EventDispatchableTrait;
3131

3232
/**
3333
* @var GrantTypeInterface[]
@@ -139,7 +139,7 @@ public function enableGrantType(GrantTypeInterface $grantType, DateInterval $acc
139139
$grantType->setScopeRepository($this->scopeRepository);
140140
$grantType->setDefaultScope($this->defaultScope);
141141
$grantType->setPrivateKey($this->privateKey);
142-
$grantType->setEmitter($this->getEmitter());
142+
$grantType->useEventDispatcher($this->eventDispatcher);
143143
$grantType->setEncryptionKey($this->encryptionKey);
144144
$grantType->revokeRefreshTokens($this->revokeRefreshTokens);
145145

src/Events/ClientAuthenticationFailed.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66

77
final class ClientAuthenticationFailed extends AbstractEvent
88
{
9-
/** @var string */
9+
/** @var string|null */
1010
private $clientId;
1111

1212
public function __construct(
13-
string $clientId,
13+
?string $clientId,
1414
ServerRequestInterface $request
1515
) {
1616
parent::__construct($request);
1717
$this->name = 'client.authentication.failed';
1818
$this->clientId = $clientId;
1919
}
2020

21-
public function getClientId(): string
21+
public function getClientId(): ?string
2222
{
2323
return $this->clientId;
2424
}

src/Events/RefreshTokenClientFailed.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66

77
final class RefreshTokenClientFailed extends AbstractEvent
88
{
9-
/** @var string */
9+
/** @var string|null */
1010
private $clientId;
1111

1212
/** @var array */
1313
private $refreshTokenData;
1414

1515
public function __construct(
16-
string $clientId,
16+
?string $clientId,
1717
array $refreshTokenData,
1818
ServerRequestInterface $request
1919
) {
@@ -23,7 +23,7 @@ public function __construct(
2323
$this->refreshTokenData = $refreshTokenData;
2424
}
2525

26-
public function getClientId(): string
26+
public function getClientId(): ?string
2727
{
2828
return $this->clientId;
2929
}

src/Events/UserAuthenticationFailed.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66

77
final class UserAuthenticationFailed extends AbstractEvent
88
{
9-
/** @var string */
9+
/** @var string|null */
1010
private $username;
1111

1212
public function __construct(
13-
string $username,
13+
?string $username,
1414
ServerRequestInterface $request
1515
) {
1616
parent::__construct($request);
1717
$this->name = 'user.authentication.failed';
1818
$this->username = $username;
1919
}
2020

21-
public function getUsername(): string
21+
public function getUsername(): ?string
2222
{
2323
return $this->username;
2424
}

src/Grant/AbstractGrant.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@
1414
use DateTimeImmutable;
1515
use Error;
1616
use Exception;
17-
use League\Event\EmitterAwareTrait;
1817
use League\OAuth2\Server\CryptKey;
1918
use League\OAuth2\Server\CryptTrait;
2019
use League\OAuth2\Server\Entities\AccessTokenEntityInterface;
2120
use League\OAuth2\Server\Entities\AuthCodeEntityInterface;
2221
use League\OAuth2\Server\Entities\ClientEntityInterface;
2322
use League\OAuth2\Server\Entities\RefreshTokenEntityInterface;
2423
use League\OAuth2\Server\Entities\ScopeEntityInterface;
24+
use League\OAuth2\Server\Events\ClientAuthenticationFailed;
25+
use League\OAuth2\Server\Events\EventDispatchableTrait;
2526
use League\OAuth2\Server\Exception\OAuthServerException;
2627
use League\OAuth2\Server\Exception\UniqueTokenIdentifierConstraintViolationException;
2728
use League\OAuth2\Server\RedirectUriValidators\RedirectUriValidator;
@@ -31,7 +32,6 @@
3132
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
3233
use League\OAuth2\Server\Repositories\ScopeRepositoryInterface;
3334
use League\OAuth2\Server\Repositories\UserRepositoryInterface;
34-
use League\OAuth2\Server\RequestEvent;
3535
use League\OAuth2\Server\RequestTypes\AuthorizationRequest;
3636
use LogicException;
3737
use Psr\Http\Message\ServerRequestInterface;
@@ -42,7 +42,7 @@
4242
*/
4343
abstract class AbstractGrant implements GrantTypeInterface
4444
{
45-
use EmitterAwareTrait, CryptTrait;
45+
use EventDispatchableTrait, CryptTrait;
4646

4747
const SCOPE_DELIMITER_STRING = ' ';
4848

@@ -194,7 +194,7 @@ protected function validateClient(ServerRequestInterface $request)
194194
[$clientId, $clientSecret] = $this->getClientCredentials($request);
195195

196196
if ($this->clientRepository->validateClient($clientId, $clientSecret, $this->getIdentifier()) === false) {
197-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
197+
$this->dispatchEvent(new ClientAuthenticationFailed($clientId, $request));
198198

199199
throw OAuthServerException::invalidClient($request);
200200
}
@@ -225,7 +225,7 @@ protected function validateClient(ServerRequestInterface $request)
225225
* getClientEntity might return null. By contrast, this method will
226226
* always either return a ClientEntityInterface or throw.
227227
*
228-
* @param string $clientId
228+
* @param string $clientId
229229
* @param ServerRequestInterface $request
230230
*
231231
* @return ClientEntityInterface
@@ -235,7 +235,7 @@ protected function getClientEntityOrFail($clientId, ServerRequestInterface $requ
235235
$client = $this->clientRepository->getClientEntity($clientId);
236236

237237
if ($client instanceof ClientEntityInterface === false) {
238-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
238+
$this->dispatchEvent(new ClientAuthenticationFailed($clientId, $request));
239239
throw OAuthServerException::invalidClient($request);
240240
}
241241

@@ -286,7 +286,7 @@ protected function validateRedirectUri(
286286
) {
287287
$validator = new RedirectUriValidator($client->getRedirectUri());
288288
if (!$validator->validateRedirectUri($redirectUri)) {
289-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
289+
$this->dispatchEvent(new ClientAuthenticationFailed($client->getIdentifier(), $request));
290290
throw OAuthServerException::invalidClient($request);
291291
}
292292
}

src/Grant/AuthCodeGrant.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
use League\OAuth2\Server\CodeChallengeVerifiers\S256Verifier;
1818
use League\OAuth2\Server\Entities\ClientEntityInterface;
1919
use League\OAuth2\Server\Entities\UserEntityInterface;
20+
use League\OAuth2\Server\Events\AccessTokenIssued;
21+
use League\OAuth2\Server\Events\ClientAuthenticationFailed;
22+
use League\OAuth2\Server\Events\RefreshTokenIssued;
2023
use League\OAuth2\Server\Exception\OAuthServerException;
2124
use League\OAuth2\Server\Repositories\AuthCodeRepositoryInterface;
2225
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
23-
use League\OAuth2\Server\RequestAccessTokenEvent;
24-
use League\OAuth2\Server\RequestEvent;
25-
use League\OAuth2\Server\RequestRefreshTokenEvent;
2626
use League\OAuth2\Server\RequestTypes\AuthorizationRequest;
2727
use League\OAuth2\Server\ResponseTypes\RedirectResponse;
2828
use League\OAuth2\Server\ResponseTypes\ResponseTypeInterface;
@@ -164,14 +164,14 @@ public function respondToAccessTokenRequest(
164164

165165
// Issue and persist new access token
166166
$accessToken = $this->issueAccessToken($accessTokenTTL, $client, $authCodePayload->user_id, $scopes);
167-
$this->getEmitter()->emit(new RequestAccessTokenEvent(RequestEvent::ACCESS_TOKEN_ISSUED, $request, $accessToken));
167+
$this->dispatchEvent(new AccessTokenIssued($accessToken, $request));
168168
$responseType->setAccessToken($accessToken);
169169

170170
// Issue and persist new refresh token if given
171171
$refreshToken = $this->issueRefreshToken($accessToken);
172172

173173
if ($refreshToken !== null) {
174-
$this->getEmitter()->emit(new RequestRefreshTokenEvent(RequestEvent::REFRESH_TOKEN_ISSUED, $request, $refreshToken));
174+
$this->dispatchEvent(new RefreshTokenIssued($refreshToken, $request));
175175
$responseType->setRefreshToken($refreshToken);
176176
}
177177

@@ -269,7 +269,7 @@ public function validateAuthorizationRequest(ServerRequestInterface $request)
269269
$this->validateRedirectUri($redirectUri, $client, $request);
270270
} elseif (empty($client->getRedirectUri()) ||
271271
(\is_array($client->getRedirectUri()) && \count($client->getRedirectUri()) !== 1)) {
272-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
272+
$this->dispatchEvent(new ClientAuthenticationFailed($clientId, $request));
273273

274274
throw OAuthServerException::invalidClient($request);
275275
}

src/Grant/ClientCredentialsGrant.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
namespace League\OAuth2\Server\Grant;
1313

1414
use DateInterval;
15+
use League\OAuth2\Server\Events\AccessTokenIssued;
16+
use League\OAuth2\Server\Events\ClientAuthenticationFailed;
1517
use League\OAuth2\Server\Exception\OAuthServerException;
16-
use League\OAuth2\Server\RequestAccessTokenEvent;
17-
use League\OAuth2\Server\RequestEvent;
1818
use League\OAuth2\Server\ResponseTypes\ResponseTypeInterface;
1919
use Psr\Http\Message\ServerRequestInterface;
2020

@@ -36,7 +36,7 @@ public function respondToAccessTokenRequest(
3636
$client = $this->getClientEntityOrFail($clientId, $request);
3737

3838
if (!$client->isConfidential()) {
39-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
39+
$this->dispatchEvent(new ClientAuthenticationFailed($clientId, $request));
4040

4141
throw OAuthServerException::invalidClient($request);
4242
}
@@ -53,7 +53,7 @@ public function respondToAccessTokenRequest(
5353
$accessToken = $this->issueAccessToken($accessTokenTTL, $client, null, $finalizedScopes);
5454

5555
// Send event to emitter
56-
$this->getEmitter()->emit(new RequestAccessTokenEvent(RequestEvent::ACCESS_TOKEN_ISSUED, $request, $accessToken));
56+
$this->dispatchEvent(new AccessTokenIssued($accessToken, $request));
5757

5858
// Inject access token into response type
5959
$responseType->setAccessToken($accessToken);

src/Grant/GrantTypeInterface.php

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

1414
use DateInterval;
1515
use Defuse\Crypto\Key;
16-
use League\Event\EmitterAwareInterface;
1716
use League\OAuth2\Server\CryptKey;
17+
use League\OAuth2\Server\Events\EventDispatchableInterface;
1818
use League\OAuth2\Server\Repositories\AccessTokenRepositoryInterface;
1919
use League\OAuth2\Server\Repositories\ClientRepositoryInterface;
2020
use League\OAuth2\Server\Repositories\ScopeRepositoryInterface;
@@ -25,7 +25,7 @@
2525
/**
2626
* Grant type interface.
2727
*/
28-
interface GrantTypeInterface extends EmitterAwareInterface
28+
interface GrantTypeInterface extends EventDispatchableInterface
2929
{
3030
/**
3131
* Set refresh token TTL.

src/Grant/ImplicitGrant.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
use DateInterval;
1313
use League\OAuth2\Server\Entities\UserEntityInterface;
14+
use League\OAuth2\Server\Events\ClientAuthenticationFailed;
1415
use League\OAuth2\Server\Exception\OAuthServerException;
1516
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
16-
use League\OAuth2\Server\RequestEvent;
1717
use League\OAuth2\Server\RequestTypes\AuthorizationRequest;
1818
use League\OAuth2\Server\ResponseTypes\RedirectResponse;
1919
use League\OAuth2\Server\ResponseTypes\ResponseTypeInterface;
@@ -136,7 +136,7 @@ public function validateAuthorizationRequest(ServerRequestInterface $request)
136136
$this->validateRedirectUri($redirectUri, $client, $request);
137137
} elseif (\is_array($client->getRedirectUri()) && \count($client->getRedirectUri()) !== 1
138138
|| empty($client->getRedirectUri())) {
139-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::CLIENT_AUTHENTICATION_FAILED, $request));
139+
$this->dispatchEvent(new ClientAuthenticationFailed($client->getIdentifier(), $request));
140140
throw OAuthServerException::invalidClient($request);
141141
} else {
142142
$redirectUri = \is_array($client->getRedirectUri())

src/Grant/PasswordGrant.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
use DateInterval;
1515
use League\OAuth2\Server\Entities\ClientEntityInterface;
1616
use League\OAuth2\Server\Entities\UserEntityInterface;
17+
use League\OAuth2\Server\Events\AccessTokenIssued;
18+
use League\OAuth2\Server\Events\RefreshTokenIssued;
19+
use League\OAuth2\Server\Events\UserAuthenticationFailed;
1720
use League\OAuth2\Server\Exception\OAuthServerException;
1821
use League\OAuth2\Server\Repositories\RefreshTokenRepositoryInterface;
1922
use League\OAuth2\Server\Repositories\UserRepositoryInterface;
20-
use League\OAuth2\Server\RequestAccessTokenEvent;
21-
use League\OAuth2\Server\RequestEvent;
22-
use League\OAuth2\Server\RequestRefreshTokenEvent;
2323
use League\OAuth2\Server\ResponseTypes\ResponseTypeInterface;
2424
use Psr\Http\Message\ServerRequestInterface;
2525

@@ -60,14 +60,14 @@ public function respondToAccessTokenRequest(
6060

6161
// Issue and persist new access token
6262
$accessToken = $this->issueAccessToken($accessTokenTTL, $client, $user->getIdentifier(), $finalizedScopes);
63-
$this->getEmitter()->emit(new RequestAccessTokenEvent(RequestEvent::ACCESS_TOKEN_ISSUED, $request, $accessToken));
63+
$this->dispatchEvent(new AccessTokenIssued($accessToken, $request));
6464
$responseType->setAccessToken($accessToken);
6565

6666
// Issue and persist new refresh token if given
6767
$refreshToken = $this->issueRefreshToken($accessToken);
6868

6969
if ($refreshToken !== null) {
70-
$this->getEmitter()->emit(new RequestRefreshTokenEvent(RequestEvent::REFRESH_TOKEN_ISSUED, $request, $refreshToken));
70+
$this->dispatchEvent(new RefreshTokenIssued($refreshToken, $request));
7171
$responseType->setRefreshToken($refreshToken);
7272
}
7373

@@ -104,7 +104,7 @@ protected function validateUser(ServerRequestInterface $request, ClientEntityInt
104104
);
105105

106106
if ($user instanceof UserEntityInterface === false) {
107-
$this->getEmitter()->emit(new RequestEvent(RequestEvent::USER_AUTHENTICATION_FAILED, $request));
107+
$this->dispatchEvent(new UserAuthenticationFailed($username, $request));
108108

109109
throw OAuthServerException::invalidCredentials();
110110
}

0 commit comments

Comments
 (0)