public function testSignatureGeneration() { $signature = new Signature('test-key'); $actual = $signature->generate('test-string'); $data = $signature->getRequestTime() . $signature->getNonce() . 'test-string'; $expected = hash_hmac('sha1', $data, 'test-key'); $this->assertEquals($expected, $actual); }
/** * @param \Guzzle\Http\Message\Request $request */ public function signRequest(Request $request) { $url = $request->getPath(); if ('POST' == $request->getMethod() && $request instanceof EntityEnclosingRequest) { $body = (string) $request->getBody(); $hash = $this->signature->generate($body); } else { $url .= '?' . $request->getQuery(); $hash = $this->signature->generate($url); } $request->addCookie('acquia_solr_time', $this->signature->getRequestTime()); $request->addCookie('acquia_solr_nonce', $this->signature->getNonce()); $request->addCookie('acquia_solr_hmac', $hash . ';'); // The timestamp should be current for each request. $this->signature->unsetRequestTime(); }