예제 #1
0
 /**
  * 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');
     }
 }
예제 #2
0
 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;
 }
예제 #3
0
 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);
     }
 }
예제 #4
0
파일: Resource.php 프로젝트: kszere/cd-sms
 /**
  * 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
     }
 }