Skip to content

Commit 0e9a595

Browse files
groodtcuberoot
authored and
cuberoot
committed
Fix to support matrix params in path
1 parent 1f9640f commit 0e9a595

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

oauth2/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ def __init__(self, method=HTTP_METHOD, url=None, parameters=None):
278278
def url(self, value):
279279
self.__dict__['url'] = value
280280
if value is not None:
281-
scheme, netloc, path, params, query, fragment = urlparse.urlparse(value)
281+
scheme, netloc, path, query, fragment = urlparse.urlsplit(value)
282282

283283
# Exclude default port numbers.
284284
if scheme == 'http' and netloc[-3:] == ':80':
@@ -289,7 +289,7 @@ def url(self, value):
289289
raise ValueError("Unsupported URL %s (%s)." % (value, scheme))
290290

291291
# Normalized URL excludes params, query, and fragment.
292-
self.normalized_url = urlparse.urlunparse((scheme, netloc, path, None, None, None))
292+
self.normalized_url = urlparse.urlunsplit((scheme, netloc, path, None, None))
293293
else:
294294
self.normalized_url = None
295295
self.__dict__['url'] = None

tests/test_oauth.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,12 @@ def test_get_normalized_parameters_ignores_auth_signature(self):
528528
foo = params.copy()
529529
del foo["oauth_signature"]
530530
self.assertEqual(urllib.urlencode(sorted(foo.items())), res)
531+
532+
def test_signature_base_string_with_matrix_params(self):
533+
url = "http://social.yahooapis.com/v1/user/6677/connections;start=0;count=20"
534+
req = oauth.Request("GET", url, None)
535+
self.assertEquals(req.normalized_url, 'http://social.yahooapis.com/v1/user/6677/connections;start=0;count=20')
536+
self.assertEquals(req.url, 'http://social.yahooapis.com/v1/user/6677/connections;start=0;count=20')
531537

532538
def test_set_signature_method(self):
533539
consumer = oauth.Consumer('key', 'secret')

0 commit comments

Comments
 (0)