From 8889a307e1c69fc82f9f326e0bcaab97f82b46bf Mon Sep 17 00:00:00 2001 From: Ilya Vasilenko Date: Fri, 12 Jul 2024 11:35:01 +0500 Subject: [PATCH] Error codes --- app/src/Listeners/JwtListener.php | 11 ++++++++++- app/src/Listeners/KernelExceptionListener.php | 6 +++--- app/src/Service/Action/UserBaseActionService.php | 2 ++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/Listeners/JwtListener.php b/app/src/Listeners/JwtListener.php index 07e56ad..6e5e61f 100644 --- a/app/src/Listeners/JwtListener.php +++ b/app/src/Listeners/JwtListener.php @@ -44,16 +44,21 @@ class JwtListener /** * @param AuthenticationFailureEvent $event + * + * @throws JsonException */ public function onAuthenticationFailureResponse(AuthenticationFailureEvent $event): void { $response = new \App\Service\Response\Classes\Response(); $response->addError('Неверный email или пароль'); + $response->setStatusCode(Response::HTTP_UNAUTHORIZED); $event->setResponse($response->getResponse()); } /** * @param JWTInvalidEvent $event + * + * @throws JsonException */ public function onJWTInvalid(JWTInvalidEvent $event): void { @@ -66,18 +71,22 @@ class JwtListener /** * @param JWTNotFoundEvent $event + * + * @throws JsonException */ public function onJWTNotFound(JWTNotFoundEvent $event): void { $response = new \App\Service\Response\Classes\Response(); $response->addError('Отсутствует токен'); - $response->setStatusCode(Response::HTTP_FORBIDDEN); + $response->setStatusCode(Response::HTTP_UNAUTHORIZED); $event->setResponse($response->getResponse()); } /** * @param JWTExpiredEvent $event + * + * @throws JsonException */ public function onJWTExpired(JWTExpiredEvent $event): void { diff --git a/app/src/Listeners/KernelExceptionListener.php b/app/src/Listeners/KernelExceptionListener.php index a9ef3cc..84f125c 100644 --- a/app/src/Listeners/KernelExceptionListener.php +++ b/app/src/Listeners/KernelExceptionListener.php @@ -8,17 +8,17 @@ use Symfony\Component\HttpKernel\KernelEvents; class KernelExceptionListener { - public static function getSubscribedEvents() + public static function getSubscribedEvents(): array { return [ KernelEvents::EXCEPTION => 'onKernelException', ]; } - public function onKernelException(ExceptionEvent $event) + public function onKernelException(ExceptionEvent $event): void { $response = new \App\Service\Response\Classes\Response(); - $response->setStatusCode(Response::HTTP_FORBIDDEN); + $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); $response->addError($event->getThrowable()->getMessage()); $event->setResponse($response->getResponse()); } diff --git a/app/src/Service/Action/UserBaseActionService.php b/app/src/Service/Action/UserBaseActionService.php index c6b2019..0236fbc 100644 --- a/app/src/Service/Action/UserBaseActionService.php +++ b/app/src/Service/Action/UserBaseActionService.php @@ -4,6 +4,7 @@ namespace App\Service\Action; use App\Entity\User; use Symfony\Bundle\SecurityBundle\Security; +use Symfony\Component\HttpFoundation\Response; use Symfony\Contracts\Service\Attribute\Required; abstract class UserBaseActionService extends BaseActionService @@ -23,6 +24,7 @@ abstract class UserBaseActionService extends BaseActionService public function customValidate(): bool { if ($this->user === null) { + $this->responseService->setStatusCode(Response::HTTP_UNAUTHORIZED); $this->responseService->addError('Вы не авторизованы'); return false; } -- GitLab