|
6 | 6 |
|
7 | 7 | class RestfulAuthenticationToken extends \RestfulAuthenticationBase { |
8 | 8 |
|
| 9 | + /** |
| 10 | + * Extracting the token from a request by a key name, either dashed or not. |
| 11 | + * |
| 12 | + * @param $param_name |
| 13 | + * The param name to check. |
| 14 | + * @param array $request |
| 15 | + * The current request. |
| 16 | + * |
| 17 | + * @return string |
| 18 | + * The token from the request or FALSE if token isn't exists. |
| 19 | + */ |
| 20 | + private function extractTokenFromRequest(array $request = array(), $param_name) { |
| 21 | + $key_name = !empty($param_name) ? $param_name : 'access_token'; |
| 22 | + $dashed_key_name = str_replace('_', '-', $key_name); |
| 23 | + |
| 24 | + // Access token may be on the request, or in the headers |
| 25 | + // (may be a with dash instead of underscore). |
| 26 | + if (!empty($request['__application'][$key_name])) { |
| 27 | + return $request['__application'][$key_name]; |
| 28 | + } |
| 29 | + elseif (!empty($request[$key_name])) { |
| 30 | + return $request[$key_name]; |
| 31 | + } |
| 32 | + elseif (!empty($request['__application'][$dashed_key_name])) { |
| 33 | + return $request['__application'][$dashed_key_name]; |
| 34 | + } |
| 35 | + elseif (!empty($request[$dashed_key_name])) { |
| 36 | + return $request[$dashed_key_name]; |
| 37 | + } |
| 38 | + |
| 39 | + // Access token with that key name isn't exists. |
| 40 | + return FALSE; |
| 41 | + } |
| 42 | + |
9 | 43 | /** |
10 | 44 | * {@inheritdoc} |
11 | 45 | */ |
12 | 46 | public function applies(array $request = array(), $method = \RestfulInterface::GET) { |
13 | 47 | $options = $this->getPluginKey('options'); |
14 | | - $key_name = !empty($options['param_name']) ? $options['param_name'] : 'access_token'; |
15 | 48 |
|
16 | | - // Access token may be on the request, or in the headers. |
17 | | - return !empty($request['__application'][$key_name]) || !empty($request[$key_name]); |
| 49 | + return $this->extractTokenFromRequest($request, $options['param_name']); |
18 | 50 | } |
19 | 51 |
|
20 | 52 | /** |
21 | 53 | * {@inheritdoc} |
22 | 54 | */ |
23 | 55 | public function authenticate(array $request = array(), $method = \RestfulInterface::GET) { |
24 | 56 | $options = $this->getPluginKey('options'); |
25 | | - $key_name = !empty($options['param_name']) ? $options['param_name'] : 'access_token'; |
26 | | - $token = !empty($request['__application'][$key_name]) ? $request['__application'][$key_name] : $request[$key_name]; |
| 57 | + $token = $this->extractTokenFromRequest($request, $options['param_name']); |
27 | 58 |
|
28 | 59 | // Check if there is a token that did not expire yet. |
29 | 60 |
|
|
0 commit comments