* * For the full copyright and license information, please view * the LICENSE file that was distributed with this source code. */ namespace CodeIgniter\Filters; use CodeIgniter\HTTP\Exceptions\RedirectException; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; use Config\App; /** * Force HTTPS filter */ class ForceHTTPS implements FilterInterface { /** * Force Secure Site Access? If the config value 'forceGlobalSecureRequests' * is true, will enforce that all requests to this site are made through * HTTPS. Will redirect the user to the current page with HTTPS, as well * as set the HTTP Strict Transport Security (HSTS) header for those browsers * that support it. * * @param array|null $arguments * * @return ResponseInterface|void */ public function before(RequestInterface $request, $arguments = null) { $config = config(App::class); if ($config->forceGlobalSecureRequests !== true) { return; } $response = service('response'); try { force_https(YEAR, $request, $response); } catch (RedirectException $e) { return $e->getResponse(); } } /** * We don't have anything to do here. * * @param array|null $arguments * * @return void */ public function after(RequestInterface $request, ResponseInterface $response, $arguments = null) { } }