src/EventSubscriber/RequestSubscriber.php line 20

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. public function __construct(private readonly RequestStack $request_stack)
  13. {
  14. }
  15. public function onKernelRequest(RequestEvent $event): void
  16. {
  17. $request = $event->getRequest();
  18. if (
  19. !$event->isMainRequest()
  20. || $request->isXmlHttpRequest()
  21. || 'login' === $request->attributes->get('_route')
  22. || 'password_forgot' === $request->attributes->get('_route')
  23. || 'password_reset' === $request->attributes->get('_route')
  24. || '_profiler_home' === $request->attributes->get('_route')
  25. ) {
  26. return;
  27. }
  28. $this->saveTargetPath($this->request_stack->getSession(), 'secured_area', $request->getUri());
  29. }
  30. public static function getSubscribedEvents(): array
  31. {
  32. return [
  33. KernelEvents::REQUEST => ['onKernelRequest', 10]
  34. ];
  35. }
  36. }