Esempio n. 1
0
 /**
  * Normalize  parameter values. Parameters are sorted by name, using lexicographical byte value ordering. 
  * If two or more parameters share the same name, they are sorted by their value.
  * Parameters are concatenated in their sorted order into a single string. 
  * For each parameter, the name is separated from the corresponding value by an "=" character, 
  * even if the value is empty. Each name-value pair is separated by an "&" character.
  */
 public function normalize($params)
 {
     ksort($params);
     $paramList = array();
     foreach ($params as $k => $values) {
         if (is_array($values)) {
             asort($values);
             foreach ($values as $v) {
                 $paramList[] = OauthHelper::escape($k) . '=' . OauthHelper::escape($v);
             }
         } else {
             $paramList[] = OauthHelper::escape($k) . '=' . OauthHelper::escape($values);
         }
     }
     return implode('&', $paramList);
 }
Esempio n. 2
0
 /**
  * Set oauth request to query string
  *
  * @return void
  */
 private function __setOAuthQueryString()
 {
     $oauthParamsStr = OauthHelper::mapper($this->oauthHelper->oauthParameters(), "&", '');
     $uri = $this->sock->parseUri($this->path);
     if (!isset($uri['query']) || $uri['query'] == '' || count($uri['query']) == 0) {
         $uri['query'] = $oauthParamsStr;
     } else {
         $uri['query'] = OauthHelper::mapper($uri['query'], "&", '') . "&" . $oauthParamsStr;
     }
     $this->path($uri);
     $signature = "&oauth_signature=" . OauthHelper::escape($this->oauthHelper->signature());
     $this->sock->config['request']['uri']['query'] .= $signature;
     $this->query = $this->sock->config['request']['uri']['query'];
     //OauthHelper::log('setOAuthQueryString::config' . $this->sock->config);
     //OauthHelper::log('setOAuthQueryString::query' . $this->query);
     //$this->sockUri->config['request']['uri']['query'] .= $signature;
 }
Esempio n. 3
0
 /**
  * Authorization header for OAuth
  *
  * @return string
  */
 public function oauthHeader($options = array())
 {
     $headerParams = array();
     foreach ($this->oauthParameters() as $name => $value) {
         $headerParams[] = $name . '="' . OauthHelper::escape($value) . '"';
     }
     $headerParamsStr = join(', ', $headerParams);
     if (!empty($this->options['realm'])) {
         $realm = 'realm="' . $this->options['realm'] . '", "';
     } else {
         $realm = '';
     }
     return "OAuth " . $realm . $headerParamsStr;
 }
Esempio n. 4
0
 /**
  * Generate base string for signature
  *
  * @return string
  */
 public function signatureBaseString()
 {
     $normalizedParams = $this->request->parametersForSignature();
     ksort($normalizedParams);
     $normalizedParamsJoined = array();
     foreach ($normalizedParams as $key => $value) {
         $normalizedParamsJoined[] = OauthHelper::escape($key) . '=' . OauthHelper::escape($value);
     }
     $normalizedParams = implode('&', $normalizedParamsJoined);
     $base = array($this->request->method(), $this->request->uri(), $normalizedParams);
     $result = implode("&", array_map(array(&$this, 'escape'), $base));
     OauthHelper::log(array('signatureBaseString' => $result));
     return $result;
 }