src/Bundles/OrganizationBundle/EventListener/CheckApiKeyExistEventListener.php line 23

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Bundles\OrganizationBundle\EventListener;
  4. use App\Bundles\OrganizationBundle\Service\UserOrganizationApiKey\UserOrganizationApiKeyService;
  5. use App\Platform\Service\SessionProvider;
  6. use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
  7. use Symfony\Component\HttpFoundation\Cookie;
  8. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  9. #[AsEventListener(eventResponseEvent::class, method'onKernelRequest')]
  10. class CheckApiKeyExistEventListener
  11. {
  12.     public const AUTH_HEADER 'Authentication';
  13.     public function __construct(
  14.         private readonly SessionProvider $sessionProvider,
  15.     ) {
  16.     }
  17.     public function onKernelRequest(ResponseEvent $event): void
  18.     {
  19.         $response $event->getResponse();
  20.         $session $this->sessionProvider->provide();
  21.         if (!$session->has(UserOrganizationApiKeyService::SESSION_API_KEY)) {
  22.             return;
  23.         }
  24.         $cookie = new Cookie(
  25.             nameself::AUTH_HEADER,
  26.             value$session->get(UserOrganizationApiKeyService::SESSION_API_KEY),
  27.             httpOnlyfalse
  28.         );
  29.         $response->headers->setCookie($cookie);
  30.     }
  31. }