vendor/nen/kennisbank-platform/src/Nen/EventSubscriber/RequestSubscriber.php line 23

Open in your IDE?
  1. <?php
  2. namespace Nen\Bundle\KennisbankPlatformBundle\EventSubscriber;
  3. use Nen\Bundle\KennisbankPlatformBundle\Security\NenAuthenticator;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  9. class RequestSubscriber implements EventSubscriberInterface
  10. {
  11.     use TargetPathTrait;
  12.     public static function getSubscribedEvents(): array
  13.     {
  14.         return [
  15.             KernelEvents::REQUEST => ['onKernelRequest'],
  16.         ];
  17.     }
  18.     public function onKernelRequest(RequestEvent $event): void
  19.     {
  20.         $request $event->getRequest();
  21.         if (!$event->isMainRequest() || !$this->supported($request)) {
  22.             return;
  23.         }
  24.         $this->saveTargetPath($request->getSession(), 'main'$request->getUri());
  25.     }
  26.     private function supported(Request $request): bool
  27.     {
  28.         if ($request->isXmlHttpRequest()) {
  29.             return false;
  30.         }
  31.         if (NenAuthenticator::LOGIN_ROUTE === $request->attributes->get('_route')) {
  32.             return false;
  33.         }
  34.         if (stripos($request->getPathInfo(), '/image') !== false) {
  35.             return false;
  36.         }
  37.         if (stripos($request->getPathInfo(), '/_profiler') !== false) {
  38.             return false;
  39.         }
  40.         return true;
  41.     }
  42. }