public function onPostLoginKernelResponse(FilterResponseEvent $e)
{
if (HttpKernelInterface::MASTER_REQUEST !== $e->getRequestType()) {
return;
}
$response = $e->getResponse();
$longestExpire = 0;
foreach ($response->headers->getCookies() as $cookie) {
// find longest expiration time
$longestExpire = max($longestExpire, $cookie->getExpiresTime());
if (!$cookie->isSecure()) {
// force existing cookies (remember-me most likely) to be secure
$response->headers->setCookie(new Cookie($cookie->getName(), $cookie->getValue(), $cookie->getExpiresTime(), $cookie->getPath(), $cookie->getDomain(), true, $cookie->isHttpOnly()));
}
}
if (null === $e->getRequest()->cookies->get($this->cookieName)) {
// set the auth cookie
$response->headers->setCookie(new Cookie($this->cookieName, '1', $longestExpire, '/', null, false, false));
}
// force session cookie to be secure
$params = session_get_cookie_params();
$response->headers->setCookie(new Cookie(session_name(), session_id(), 0, $params['path'], $params['domain'], true, $params['httponly']));
}