/** * Support Strict-Transport-Security * * @param \Arbor\Provider\Response $response * @param array $config * @see https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security * @since 0.1.0 */ private function supportTimeForceSSL(Response $response, $config) { if (isset($config['forceSSL']) && $config['forceSSL'] == "true") { $maxAge = '3600000'; if (isset($config['timeForceSSL'])) { $maxAge = $config['timeForceSSL']; } $response->setHeader('Strict-Transport-Security', 'max-age=' . $maxAge . '; includeSubDomains'); } }
private function createResponseRedirect($redirect, $request) { $response = new Response(); if ($request->isAjax()) { $response->setStatusCode(401); $response->setHeader('X-Location', $redirect); } else { $response->redirect($redirect); } return $response; }
public function render(RequestConfig $config, Response $response) { $response->setHeader('content-type', 'application/json'); $this->config = $config; $this->setHeaders($response); if ($response->getStatusCode() < 401) { $this->renderSuccess($response); } else { $this->renderFail($response); } }
/** * Set headers for range data support. * * @param \Arbor\Provider\Response $response * @param long $fileSize * @since 0.1.0 */ private function rangeSupport($response, $fileSize) { try { $request = $this->getRequest(); $range = $request->getHeader('Range'); $invalidRange = false; if (preg_match('/^bytes=([0-9]+)-([0-9]*)$/', $range, $match)) { $startRange = $match[1]; $endRange = $match[2]; if ($endRange == '' || $endRange > $filesize) { $endRange = $fileSize - 1; } if ($startRange > $endRange) { $invalidRange = true; } else { $response->setHeader('Accept-Ranges', '0-' . $fileSize); $response->setHeader('Content-Range', 'bytes ' . $startRange . '-' . $endRange . '/' . $fileSize); $response->setHeader('content-length', $endRange - $startRange + 1); $response->setStatusCode(206); } } else { $invalidRange = true; } if ($invalidRange) { $response->setStatusCode(416); $response->setHeader('Content-Range', 'bytes *-/' . $filesize); } } catch (HeaderNotFoundException $e) { //skipp } }