web/lib/Zend/Oauth/Http/Utility.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
equal deleted inserted replaced
805:5e7a0fedabdf 807:877f952ae2bd
    12  * obtain it through the world-wide-web, please send an email
    12  * obtain it through the world-wide-web, please send an email
    13  * to license@zend.com so we can send you a copy immediately.
    13  * to license@zend.com so we can send you a copy immediately.
    14  *
    14  *
    15  * @category   Zend
    15  * @category   Zend
    16  * @package    Zend_Oauth
    16  * @package    Zend_Oauth
    17  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    17  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    18  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    18  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    19  * @version    $Id: Utility.php 22662 2010-07-24 17:37:36Z mabe $
    19  * @version    $Id: Utility.php 24593 2012-01-05 20:35:02Z matthew $
    20  */
    20  */
    21 
    21 
    22 /** Zend_Oauth */
    22 /** Zend_Oauth */
    23 require_once 'Zend/Oauth.php';
    23 require_once 'Zend/Oauth.php';
    24 
    24 
    26 require_once 'Zend/Oauth/Http.php';
    26 require_once 'Zend/Oauth/Http.php';
    27 
    27 
    28 /**
    28 /**
    29  * @category   Zend
    29  * @category   Zend
    30  * @package    Zend_Oauth
    30  * @package    Zend_Oauth
    31  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    31  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    32  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    32  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    33  */
    33  */
    34 class Zend_Oauth_Http_Utility
    34 class Zend_Oauth_Http_Utility
    35 {
    35 {
    36     /**
    36     /**
    41      * @param  Zend_Oauth_Config_ConfigInterface $config
    41      * @param  Zend_Oauth_Config_ConfigInterface $config
    42      * @param  null|array $serviceProviderParams
    42      * @param  null|array $serviceProviderParams
    43      * @return array
    43      * @return array
    44      */
    44      */
    45     public function assembleParams(
    45     public function assembleParams(
    46         $url, 
    46         $url,
    47         Zend_Oauth_Config_ConfigInterface $config,
    47         Zend_Oauth_Config_ConfigInterface $config,
    48         array $serviceProviderParams = null
    48         array $serviceProviderParams = null
    49     ) {
    49     ) {
    50         $params = array(
    50         $params = array(
    51             'oauth_consumer_key'     => $config->getConsumerKey(),
    51             'oauth_consumer_key'     => $config->getConsumerKey(),
    52             'oauth_nonce'            => $this->generateNonce(),
    52             'oauth_nonce'            => $this->generateNonce(),
    53             'oauth_signature_method' => $config->getSignatureMethod(),
    53             'oauth_signature_method' => $config->getSignatureMethod(),
    54             'oauth_timestamp'        => $this->generateTimestamp(),
    54             'oauth_timestamp'        => $this->generateTimestamp(),
    55             'oauth_version'          => $config->getVersion(),
    55             'oauth_version'          => $config->getVersion(),
    56         );
    56         );
    57         
    57 
    58         if ($config->getToken()->getToken() != null) {
    58         if ($config->getToken()->getToken() != null) {
    59             $params['oauth_token'] = $config->getToken()->getToken();
    59             $params['oauth_token'] = $config->getToken()->getToken();
    60         }
    60         }
    61 
    61 
    62 
    62 
    94                 }
    94                 }
    95             }
    95             }
    96         }
    96         }
    97         $encodedParams = array();
    97         $encodedParams = array();
    98         foreach ($params as $key => $value) {
    98         foreach ($params as $key => $value) {
    99             $encodedParams[] = self::urlEncode($key) 
    99             $encodedParams[] = self::urlEncode($key)
   100                              . '=' 
   100                              . '='
   101                              . self::urlEncode($value);
   101                              . self::urlEncode($value);
   102         }
   102         }
   103         return implode('&', $encodedParams);
   103         return implode('&', $encodedParams);
   104     }
   104     }
   105 
   105 
   106     /**
   106     /**
   107      * Cast to authorization header
   107      * Cast to authorization header
   108      * 
   108      *
   109      * @param  array $params 
   109      * @param  array $params
   110      * @param  null|string $realm 
   110      * @param  null|string $realm
   111      * @param  bool $excludeCustomParams 
   111      * @param  bool $excludeCustomParams
   112      * @return void
   112      * @return void
   113      */
   113      */
   114     public function toAuthorizationHeader(array $params, $realm = null, $excludeCustomParams = true)
   114     public function toAuthorizationHeader(array $params, $realm = null, $excludeCustomParams = true)
   115     {
   115     {
   116         $headerValue = array(
   116         $headerValue = array(
   121             if ($excludeCustomParams) {
   121             if ($excludeCustomParams) {
   122                 if (!preg_match("/^oauth_/", $key)) {
   122                 if (!preg_match("/^oauth_/", $key)) {
   123                     continue;
   123                     continue;
   124                 }
   124                 }
   125             }
   125             }
   126             $headerValue[] = self::urlEncode($key) 
   126             $headerValue[] = self::urlEncode($key)
   127                            . '="'
   127                            . '="'
   128                            . self::urlEncode($value) . '"';
   128                            . self::urlEncode($value) . '"';
   129         }
   129         }
   130         return implode(",", $headerValue);
   130         return implode(",", $headerValue);
   131     }
   131     }
   132 
   132 
   133     /**
   133     /**
   134      * Sign request
   134      * Sign request
   135      * 
   135      *
   136      * @param  array $params 
   136      * @param  array $params
   137      * @param  string $signatureMethod 
   137      * @param  string $signatureMethod
   138      * @param  string $consumerSecret 
   138      * @param  string $consumerSecret
   139      * @param  null|string $tokenSecret 
   139      * @param  null|string $tokenSecret
   140      * @param  null|string $method 
   140      * @param  null|string $method
   141      * @param  null|string $url 
   141      * @param  null|string $url
   142      * @return string
   142      * @return string
   143      */
   143      */
   144     public function sign(
   144     public function sign(
   145         array $params, $signatureMethod, $consumerSecret, $tokenSecret = null, $method = null, $url = null
   145         array $params, $signatureMethod, $consumerSecret, $tokenSecret = null, $method = null, $url = null
   146     ) {
   146     ) {
   159         return $signatureObject->sign($params, $method, $url);
   159         return $signatureObject->sign($params, $method, $url);
   160     }
   160     }
   161 
   161 
   162     /**
   162     /**
   163      * Parse query string
   163      * Parse query string
   164      * 
   164      *
   165      * @param  mixed $query 
   165      * @param  mixed $query
   166      * @return array
   166      * @return array
   167      */
   167      */
   168     public function parseQueryString($query)
   168     public function parseQueryString($query)
   169     {
   169     {
   170         $params = array();
   170         $params = array();
   182         return $params;
   182         return $params;
   183     }
   183     }
   184 
   184 
   185     /**
   185     /**
   186      * Generate nonce
   186      * Generate nonce
   187      * 
   187      *
   188      * @return string
   188      * @return string
   189      */
   189      */
   190     public function generateNonce()
   190     public function generateNonce()
   191     {
   191     {
   192         return md5(uniqid(rand(), true));
   192         return md5(uniqid(rand(), true));
   193     }
   193     }
   194 
   194 
   195     /**
   195     /**
   196      * Generate timestamp
   196      * Generate timestamp
   197      * 
   197      *
   198      * @return int
   198      * @return int
   199      */
   199      */
   200     public function generateTimestamp()
   200     public function generateTimestamp()
   201     {
   201     {
   202         return time();
   202         return time();
   203     }
   203     }
   204 
   204 
   205     /**
   205     /**
   206      * urlencode a value
   206      * urlencode a value
   207      * 
   207      *
   208      * @param  string $value 
   208      * @param  string $value
   209      * @return string
   209      * @return string
   210      */
   210      */
   211     public static function urlEncode($value)
   211     public static function urlEncode($value)
   212     {
   212     {
   213         $encoded = rawurlencode($value);
   213         $encoded = rawurlencode($value);