Example #1
0
 /**
  * Get the canonicalized query/parameter string for a request
  *
  * @param RequestInterface $request Request used to build canonicalized string
  *
  * @return string
  */
 private function getCanonicalizedParameterString(RequestInterface $request)
 {
     if ($request->getMethod() == 'POST') {
         $params = $request->getPostFields()->toArray();
     } else {
         $params = $request->getQuery()->toArray();
     }
     // Don't resign a previous signature value
     unset($params['Signature']);
     uksort($params, 'strcmp');
     $str = '';
     foreach ($params as $key => $val) {
         $str .= rawurlencode($key) . '=' . rawurlencode($val) . '&';
     }
     return substr($str, 0, -1);
 }
Example #2
0
 /**
  * Get all of the parameters required to sign a request including:
  * * The oauth params
  * * The request GET params
  * * The params passed in the POST body (with a content-type of application/x-www-form-urlencoded)
  *
  * @param RequestInterface $request   Request to generate a signature for
  * @param integer          $timestamp Timestamp to use for nonce
  * @param string           $nonce
  *
  * @return array
  */
 public function getParamsToSign(RequestInterface $request, $timestamp, $nonce)
 {
     $params = $this->getOauthParams($timestamp, $nonce);
     // Add query string parameters
     $params->merge($request->getQuery());
     // Add POST fields to signing string if required
     if ($this->shouldPostFieldsBeSigned($request)) {
         $params->merge($request->getPostFields());
     }
     // Sort params
     $params = $params->toArray();
     uksort($params, 'strcmp');
     return $params;
 }
Example #3
0
 private function moveHeadersToQuery(RequestInterface $request)
 {
     $query = $request->getQuery();
     foreach ($request->getHeaders() as $name => $header) {
         if (substr($name, 0, 5) == 'x-amz') {
             $query[$header->getName()] = (string) $header;
         }
         if ($name !== 'host') {
             $request->removeHeader($name);
         }
     }
 }
Example #4
0
 public function visit(CommandInterface $command, RequestInterface $request, Parameter $param, $value)
 {
     $request->getQuery()->set($param->getWireName(), $this->prepareValue($value, $param));
 }
Example #5
0
 protected function visit_query(RequestInterface $request, $value, $flags)
 {
     if (!is_array($value)) {
         throw new InvalidArgumentException('query value must be an array');
     }
     if ($flags & self::OPTIONS_AS_DEFAULTS) {
         // Merge query string values in but do not overwrite existing values
         $query = $request->getQuery();
         $query->overwriteWith(array_diff_key($value, $query->toArray()));
     } else {
         $request->getQuery()->overwriteWith($value);
     }
 }