예제 #1
0
 /**
  * @covers Brickoo\Component\Http\HttpMessageHeader::toString
  * @covers Brickoo\Component\Http\HttpHeaderFieldNameNormalizer::normalize
  */
 public function testToString()
 {
     $expectedString = "Host: brickoo.com\r\n";
     $messageHeader = new HttpMessageHeader();
     $messageHeader->addField(new GenericHeaderField("Host", "brickoo.com"));
     $this->assertEquals($expectedString, $messageHeader->toString());
 }
 /**
  * Return the IIS request ur assigned if available.
  * @return string|null the request uri or null on unavailable
  */
 private function getIisRequestUri()
 {
     if ($this->header->contains("X-Original-Url")) {
         return $this->header->getField("X-Original-Url")->getValue();
     }
     if ($this->header->contains("X-Rewrite-Url")) {
         return $this->header->getField("X-Rewrite-Url")->getValue();
     }
     return null;
 }
예제 #3
0
 /**
  * Return the forwarded client ip.
  * @return null|string
  */
 private function getForwardedClientIp()
 {
     $clientIp = null;
     if ($this->httpHeader->contains("X-Forwarded-For") && ($forwardedIps = $this->httpHeader->getField("X-Forwarded-For")->getValue())) {
         $forwardedIps = array_filter(preg_split("/[\\s]*,[\\s]*/", $forwardedIps), function ($ipToValidate) {
             return filter_var($ipToValidate, FILTER_VALIDATE_IP);
         });
         if (!empty($forwardedIps)) {
             $clientIp = array_shift($forwardedIps);
         }
     }
     return $clientIp;
 }
예제 #4
0
 /**
  * Creates a message header object containing passed header fields.
  * @param array $messageHeaderFields instances of \Brickoo\Component\Http\HttpHeaderField
  * @throws \InvalidArgumentException
  * @return \Brickoo\Component\Http\HttpMessageHeader
  */
 private function createMessageHeader(array $messageHeaderFields)
 {
     $messageHeader = new HttpMessageHeader();
     $messageHeader->fromArray($messageHeaderFields);
     return $messageHeader;
 }