src/EventSubscriber/KernelResponseListener.php line 42

  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Controller\ReturnImpostazioniServiceController;
  4. use App\Controller\ServiziController;
  5. use Monolog\Logger;
  6. use Symfony\Bundle\FrameworkBundle\Routing\Router;
  7. use Symfony\Component\HttpFoundation\Cookie;
  8. use Symfony\Component\HttpFoundation\RedirectResponse;
  9. use Symfony\Component\HttpFoundation\Session\Session;
  10. use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
  11. use Symfony\Component\HttpKernel\Event\RequestEvent;
  12. use Symfony\Component\HttpKernel\Event\ResponseEvent;
  13. use Symfony\Component\HttpKernel\KernelEvents;
  14. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  15. use Symfony\Bundle\SecurityBundle\Security;
  16. /**
  17.  * Class KernelRequestListener
  18.  * @package App\EventSubscriber
  19.  */
  20. class KernelResponseListener implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
  21. {
  22.     private ServiziController $servizi;
  23.     private ReturnImpostazioniServiceController $imp;
  24.     private $tokenStorage;
  25.     private $logger;
  26.     private Security $security;
  27.     public function __construct(ServiziController $serviziTokenStorageInterface $tokenStorageLogger $loggerReturnImpostazioniServiceController  $impSecurity $security)
  28.     {
  29.         $this->servizi $servizi;
  30.         $this->security $security;
  31.         $this->logger $logger;
  32.         $this->tokenStorage $tokenStorage;
  33.         $this->imp $imp;
  34.     }
  35.     public function onKernelResponse(ResponseEvent $event)
  36.     {
  37.         $cookie = new Cookie('secret_user'$this->servizi->randomString(), (new \DateTime('now'))->modify("+30 day"));
  38.         $cookieTrovato $event->getRequest()->cookies->get('secret_user');
  39.         if(!$cookieTrovato)
  40.             $event->getResponse()->headers->setCookie($cookie);
  41.     }
  42.     /**
  43.      * Returns an array of event names this subscriber wants to listen to.
  44.      *
  45.      * The array keys are event names and the value can be:
  46.      *
  47.      *  * The method name to call (priority defaults to 0)
  48.      *  * An array composed of the method name to call and the priority
  49.      *  * An array of arrays composed of the method names to call and respective
  50.      *    priorities, or 0 if unset
  51.      *
  52.      * For instance:
  53.      *
  54.      *  * ['eventName' => 'methodName']
  55.      *  * ['eventName' => ['methodName', $priority]]
  56.      *  * ['eventName' => [['methodName1', $priority], ['methodName2']]]
  57.      *
  58.      * The code must not depend on runtime state as it will only be called at compile time.
  59.      * All logic depending on runtime state must be put into the individual methods handling the events.
  60.      *
  61.      * @return array The event names to listen to
  62.      */
  63.     public static function getSubscribedEvents()
  64.     {
  65.         return array(
  66.             // must be registered before the default Locale listener
  67.             KernelEvents::RESPONSE => array(array('onKernelResponse'17)),
  68.         );
  69.     }
  70. }