src/EventSubscriber/RequestSubscriber.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  8. class RequestSubscriber implements EventSubscriberInterface
  9. {
  10.     use TargetPathTrait;
  11.     private $session;
  12.     private $request_stack;
  13.     public function __construct(RequestStack $request_stack)
  14.     {
  15.         $this->request_stack $request_stack;
  16.     }
  17.     public function onKernelRequest(RequestEvent $event): void
  18.     {
  19.         $request $event->getRequest();
  20.         if (
  21.             !$event->isMainRequest()
  22.             || $request->isXmlHttpRequest()
  23.             || 'login' === $request->attributes->get('_route')
  24.             || 'password_forgot' === $request->attributes->get('_route')
  25.             || 'password_reset' === $request->attributes->get('_route')
  26.             || '_profiler_home' === $request->attributes->get('_route')
  27.         ) {
  28.             return;
  29.         }
  30.         $this->saveTargetPath($this->request_stack->getSession(), 'secured_area'$request->getUri());
  31.     }
  32.     public static function getSubscribedEvents(): array
  33.     {
  34.         return [
  35.             KernelEvents::REQUEST => ['onKernelRequest'10]
  36.         ];
  37.     }
  38. }