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 |
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 ) { |
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); |