Example #1
1
 private function setRequest()
 {
     $url = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
     $request = new Request($url, $_SERVER['REQUEST_METHOD']);
     if (isset($_SERVER['HTTP_REFERRER'])) {
         $request->setReferrer($_SERVER['HTTP_REFERRER']);
     }
     $this->ip = $_SERVER['REMOTE_ADDR'];
     //	$request->set ( $_SERVER ['REMOTE_ADDR'] );
     $request->setBody(file_get_contents("php://input"));
     if ($request->getMethod() !== 'POST') {
         parse_str($request->getBody(), $post_vars);
         $request->setPost($post_vars);
     } else {
         $request->setPost($_POST);
     }
     foreach (getallheaders() as $k => $v) {
         $request->addHeader($k, $v);
     }
     $this->request = $request;
 }
Example #2
0
    function testToString()
    {
        $request = new Request('PUT', '/foo/bar', ['Content-Type' => 'text/xml']);
        $request->setBody('foo');
        $expected = <<<HI
PUT /foo/bar HTTP/1.1
Content-Type: text/xml

foo
HI;
        $this->assertEquals($expected, (string) $request);
    }
Example #3
0
 public function testMatchingBody()
 {
     $first = new Request('GET', 'http://example.com', array());
     $first->setBody('test');
     $second = new Request('GET', 'http://example.com', array());
     $second->setBody('test');
     $this->assertTrue(RequestMatcher::matchBody($first, $second), 'Bodies should be equal');
     $first = new Request('GET', 'http://example.com', array());
     $first->setBody('test');
     $second = new Request('POST', 'http://example.com', array());
     $second->setBody('different');
     $this->assertFalse(RequestMatcher::matchBody($first, $second), 'Bodies are different.');
 }
 /**
  * @param Request $request
  *
  * @return Request
  */
 public function beforeSend(Request $request)
 {
     //Host API isn't restful so path must always self::ENDPOINT_PATH
     $request->setUrl(self::ENDPOINT_PATH);
     $headers = array(self::CF_INTEGRATION_HEADER => $this->config->getValue('integrationName'), self::CF_INTEGRTATION_VERSION_HEADER => $this->config->getValue('version'));
     $request->setHeaders($headers);
     $body = $request->getBody();
     $user_key_actions = array('zone_set', 'full_zone_set');
     if (in_array(strtolower($body['act']), $user_key_actions)) {
         $body['user_key'] = $this->data_store->getHostAPIUserKey();
     }
     $body['host_key'] = $this->integrationAPI->getHostAPIKey();
     $request->setBody($body);
     return $request;
 }
Example #5
0
 /**
  * Creates a new Request from a specified array.
  *
  * @param  array $request Request represented as an array.
  *
  * @return Request A new Request from specified array.
  */
 public static function fromArray(array $request)
 {
     $requestObject = new Request($request['method'], $request['url'], isset($request['headers']) ? $request['headers'] : array());
     if (!empty($request['post_fields']) && is_array($request['post_fields'])) {
         $requestObject->setPostFields($request['post_fields']);
     }
     if (!empty($request['post_files']) && is_array($request['post_files'])) {
         foreach ($request['post_files'] as $file) {
             $requestObject->addPostFile($file);
         }
     }
     if (!empty($request['body'])) {
         $requestObject->setBody((string) $request['body']);
     }
     return $requestObject;
 }
Example #6
0
 public function testValidRequest()
 {
     $accessKey = 'accessKey';
     $secretKey = 'secretKey';
     $content = 'thisisthebody';
     $contentMD5 = base64_encode(md5($content, true));
     $date = new \DateTime('now');
     $date->setTimeZone(new \DateTimeZone('GMT'));
     $date = $date->format('D, d M Y H:i:s \\G\\M\\T');
     $sig = base64_encode($this->hmacsha1($secretKey, "POST\n{$contentMD5}\n\n{$date}\nx-amz-date:{$date}\n/evert"));
     $request = new Request(array('REQUEST_METHOD' => 'POST', 'HTTP_AUTHORIZATION' => "AWS {$accessKey}:{$sig}", 'HTTP_CONTENT_MD5' => $contentMD5, 'HTTP_X_AMZ_DATE' => $date, 'REQUEST_URI' => '/evert'));
     $request->setBody($content);
     $this->auth->setHTTPRequest($request);
     $this->auth->init();
     $result = $this->auth->validate($secretKey);
     $this->assertTrue($result, 'Signature did not validate, got errorcode ' . $this->auth->errorCode);
     $this->assertEquals($accessKey, $this->auth->getAccessKey());
 }
Example #7
0
    function testToStringAuthorization()
    {
        $request = new Request('PUT', '/foo/bar', ['Content-Type' => 'text/xml', 'Authorization' => 'Basic foobar']);
        $request->setBody('foo');
        $expected = <<<HI
PUT /foo/bar HTTP/1.1
Content-Type: text/xml
Authorization: Basic REDACTED

foo
HI;
        $this->assertEquals($expected, (string) $request);
    }
Example #8
0
 public function testDigestAuthInt()
 {
     $this->auth->setQOP(DigestAuth::QOP_AUTHINT | DigestAuth::QOP_AUTH);
     list($nonce, $opaque) = $this->getServerTokens(DigestAuth::QOP_AUTHINT | DigestAuth::QOP_AUTH);
     $username = '******';
     $password = 12345;
     $nc = '00003';
     $cnonce = uniqid();
     $digestHash = md5(md5($username . ':' . self::REALM . ':' . $password) . ':' . $nonce . ':' . $nc . ':' . $cnonce . ':' . 'auth-int:' . md5('POST' . ':' . '/' . ':' . md5('body')));
     $request = new Request(array('REQUEST_METHOD' => 'POST', 'PHP_AUTH_DIGEST' => 'username="******", realm="' . self::REALM . '", nonce="' . $nonce . '", uri="/", response="' . $digestHash . '", opaque="' . $opaque . '", qop=auth-int,nc=' . $nc . ',cnonce="' . $cnonce . '"'));
     $request->setBody('body');
     $this->auth->setHTTPRequest($request);
     $this->auth->init();
     $this->assertTrue($this->auth->validateA1(md5($username . ':' . self::REALM . ':' . $password)), 'Authentication is deemed invalid through validateA1');
 }