From d77b3d9ee9355be41ba73aacd9fd9eecd1344a64 Mon Sep 17 00:00:00 2001 From: Vycheslav Mankevich Date: Fri, 2 Jul 2021 11:09:17 +0300 Subject: [PATCH] Added specialized exceptions (#239) * Added specialized exceptions * Fixed styling * Fixed styling * Fixed styling Co-authored-by: Vyacheslav Mankevich --- Exception/InvalidRefreshTokenException.php | 9 +++++++++ Exception/UnknownRefreshTokenException.php | 9 +++++++++ Exception/UnknownUserFromRefreshTokenException.php | 9 +++++++++ Security/Authenticator/RefreshTokenAuthenticator.php | 6 ++++-- Service/RefreshToken.php | 3 ++- 5 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 Exception/InvalidRefreshTokenException.php create mode 100644 Exception/UnknownRefreshTokenException.php create mode 100644 Exception/UnknownUserFromRefreshTokenException.php diff --git a/Exception/InvalidRefreshTokenException.php b/Exception/InvalidRefreshTokenException.php new file mode 100644 index 00000000..7c9506f9 --- /dev/null +++ b/Exception/InvalidRefreshTokenException.php @@ -0,0 +1,9 @@ +getUsernameForRefreshToken($refreshToken); if (null === $username) { - throw new AuthenticationException(sprintf('Refresh token "%s" does not exist.', $refreshToken)); + throw new UnknownRefreshTokenException(sprintf('Refresh token "%s" does not exist.', $refreshToken)); } $user = $userProvider->loadUserByUsername($username); if (null === $user) { - throw new AuthenticationException(sprintf('User with refresh token "%s" does not exist.', $refreshToken)); + throw new UnknownUserFromRefreshTokenException(sprintf('User with refresh token "%s" does not exist.', $refreshToken)); } $this->userChecker->checkPreAuth($user); diff --git a/Service/RefreshToken.php b/Service/RefreshToken.php index 1ccb38a9..72f7a779 100644 --- a/Service/RefreshToken.php +++ b/Service/RefreshToken.php @@ -13,6 +13,7 @@ use Gesdinet\JWTRefreshTokenBundle\Event\RefreshEvent; use Gesdinet\JWTRefreshTokenBundle\Security\Authenticator\RefreshTokenAuthenticator; +use Gesdinet\JWTRefreshTokenBundle\Exception\InvalidRefreshTokenException; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Contracts\EventDispatcher\EventDispatcherInterface as ContractsEventDispatcherInterface; use InvalidArgumentException; @@ -133,7 +134,7 @@ public function refresh(Request $request) if (null === $refreshToken || !$refreshToken->isValid()) { return $this->failureHandler->onAuthenticationFailure( $request, - new AuthenticationException( + new InvalidRefreshTokenException( sprintf('Refresh token "%s" is invalid.', $refreshToken) ) );