/** * Registered as kernel.request event listener. * * If the condition needs a redirection to HTTPS, then the current process is interrupted, the headers are sent directly. * * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { // already SSL, do nothing more if (\ToolsCore::usingSecureMode()) { return; } $enabled = 1 == \Configuration::get('PS_SSL_ENABLED'); $forced = 1 == \Configuration::get('PS_SSL_ENABLED_EVERYWHERE'); $serverParams = $event->getRequest()->server; $refererSsl = $serverParams->has('HTTP_REFERER') && strpos($serverParams->get('HTTP_REFERER'), 'https') === 0; if ($enabled && ($forced || $refererSsl)) { $this->redirectToSsl($event); } }