Преглед изворни кода

Prevents overwriting of query string parameters in a provided URI where setParameterGet() is passed over - fixes ZFINC-81 and ZF-4158

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@20938 44c647ce-9c0f-0410-b52a-842ac1e357ba
padraic пре 16 година
родитељ
комит
653dfd66f7
1 измењених фајлова са 12 додато и 2 уклоњено
  1. 12 2
      library/Zend/Oauth/Client.php

+ 12 - 2
library/Zend/Oauth/Client.php

@@ -161,9 +161,19 @@ class Zend_Oauth_Client extends Zend_Http_Client
             $this->setRawData($raw);
             $this->paramsPost = array();
         } elseif ($requestScheme == Zend_Oauth::REQUEST_SCHEME_QUERYSTRING) {
-            $this->getUri()->setQuery('');
+            $params = array();
+            $query = $this->getUri()->getQuery();
+            if ($query) {
+                $queryParts = split('&', $this->getUri()->getQuery());
+                foreach ($queryParts as $queryPart) {
+                    $kvTuple = split('=', $queryPart);
+                    $params[$kvTuple[0]] = 
+                        (array_key_exists(1, $kvTuple) ? $kvTuple[1] : NULL);
+                }
+            }
+
             $query = $this->getToken()->toQueryString(
-                $this->getUri(true), $this->_config, $this->paramsGet
+                $this->getUri(true), $this->_config, $params
             );
             $this->getUri()->setQuery($query);
             $this->paramsGet = array();