public function sign(Request $request, ApiKey $apiKey)
 {
     date_default_timezone_set(self::TIME_ZONE);
     $date = new \DateTime();
     $timeStamp = $date->format(self::TIMESTAMP_FORMAT);
     $requestHeaders = $request->getHeaders();
     unset($requestHeaders[self::STORMPATH_DATE_HEADER]);
     unset($requestHeaders[self::AUTHORIZATION_HEADER]);
     $authorizationHeader = base64_encode($apiKey->getId() . ":" . $apiKey->getSecret());
     $requestHeaders[self::STORMPATH_DATE_HEADER] = $timeStamp;
     $requestHeaders[self::AUTHORIZATION_HEADER] = self::AUTHENTICATION_SCHEME . " " . $authorizationHeader;
     $request->setHeaders($requestHeaders);
 }
 private function canonicalizeHeaders(Request $request)
 {
     $requestHeaders = $request->getHeaders();
     ksort($requestHeaders);
     $request->setHeaders($requestHeaders);
     $result = '';
     foreach ($request->getHeaders() as $key => $val) {
         $result .= strtolower($key) . ':' . $val;
         $result .= self::NL;
     }
     return $result;
 }
 private function applyDefaultRequestHeaders(Request $request)
 {
     $headers = $request->getHeaders();
     $headers['Accept'] = 'application/json';
     $userAgentBuilder = new UserAgentBuilder();
     $headers['User-Agent'] = $userAgentBuilder->setOsName(php_uname('s'))->setOsVersion(php_uname('r'))->setPhpVersion(phpversion())->build();
     if ($request->getBody()) {
         $headers['Content-Type'] = 'application/json';
     }
     $request->setHeaders($headers);
 }
 private function applyDefaultRequestHeaders(Request $request)
 {
     $headers = $request->getHeaders();
     $headers['Accept'] = 'application/json';
     $userAgentBuilder = new UserAgentBuilder();
     $headers['User-Agent'] = $userAgentBuilder->setOsName(php_uname('s'))->setOsVersion(php_uname('r'))->setPhpVersion(phpversion())->build();
     if ($body = $request->getBody()) {
         $headers['Content-Type'] = 'application/json';
         if (strpos($request->getResourceUrl(), '/oauth/token')) {
             $arr = json_decode($body);
             $arr = (array) $arr;
             ksort($arr);
             $body = http_build_query($arr);
             $request->setBody($body, strlen($body));
             $headers['Content-Type'] = 'application/x-www-form-urlencoded';
             $headers['Content-Length'] = $request->getContentLength();
         }
     }
     $request->setHeaders($headers);
 }