<?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\Security\Http\RememberMe;use Symfony\Component\EventDispatcher\EventSubscriberInterface;use Symfony\Component\HttpKernel\Event\ResponseEvent;use Symfony\Component\HttpKernel\KernelEvents;/** * Adds remember-me cookies to the Response. * * @author Johannes M. Schmitt <schmittjoh@gmail.com> * * @final */class ResponseListener implements EventSubscriberInterface{ /** * This attribute name can be used by the implementation if it needs to set * a cookie on the Request when there is no actual Response, yet. */ public const COOKIE_ATTR_NAME = '_security_remember_me_cookie'; public function onKernelResponse(ResponseEvent $event) { if (!$event->isMainRequest()) { return; } $request = $event->getRequest(); $response = $event->getResponse(); if ($request->attributes->has(self::COOKIE_ATTR_NAME)) { $response->headers->setCookie($request->attributes->get(self::COOKIE_ATTR_NAME)); } } /** * {@inheritdoc} */ public static function getSubscribedEvents(): array { return [KernelEvents::RESPONSE => 'onKernelResponse']; }}