Skip to content

Commit

Permalink
Merge pull request #778 from OpenIDC/deprecations
Browse files Browse the repository at this point in the history
Remove deprecated urllib.parse.splitquery calls
  • Loading branch information
tpazderka authored May 20, 2021
2 parents 301eb8f + 16c038c commit f6d836a
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 19 deletions.
6 changes: 4 additions & 2 deletions src/oic/extension/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import socket
from typing import Dict
from urllib.parse import parse_qs
from urllib.parse import splitquery # type: ignore
from urllib.parse import urlparse

from jwkest import b64e

Expand Down Expand Up @@ -213,7 +213,9 @@ def __init__(
def _uris_to_tuples(uris):
tup = []
for uri in uris:
base, query = splitquery(uri)
part = urlparse(uri)
query = part.query
base = part._replace(query="").geturl()
if query:
tup.append((base, query))
else:
Expand Down
6 changes: 2 additions & 4 deletions src/oic/oauth2/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
from typing import Optional
from typing import Union
from urllib.parse import parse_qs
from urllib.parse import splitquery # type: ignore
from urllib.parse import unquote
from urllib.parse import urljoin
from urllib.parse import urlparse
Expand Down Expand Up @@ -322,9 +321,8 @@ def _verify_redirect_uri(self, areq):
if part.fragment:
raise URIError("Contains fragment")

(_base, _query) = splitquery(_redirect_uri)
if _query:
_query = parse_qs(_query)
_query = parse_qs(part.query) if part.query else None
_base = part._replace(query="").geturl()

match = False
for regbase, rquery in self.cdb[str(areq["client_id"])]["redirect_uris"]:
Expand Down
13 changes: 7 additions & 6 deletions src/oic/oic/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
from typing import Tuple
from typing import Union
from urllib.parse import parse_qs
from urllib.parse import splitquery # type: ignore
from urllib.parse import unquote
from urllib.parse import urlencode
from urllib.parse import urljoin
Expand Down Expand Up @@ -481,8 +480,7 @@ def get_sector_id(redirect_uri, client_info):
part = urlparse(_redirect_uri)
if part.fragment:
raise ValueError

(_base, _query) = splitquery(_redirect_uri)
_base = part._replace(query="").geturl()

sid = ""
try:
Expand Down Expand Up @@ -1341,7 +1339,8 @@ def verify_redirect_uris(registration_request):
elif p.fragment:
raise InvalidRedirectURIError("redirect_uri contains fragment")

base, query = splitquery(uri)
query = p.query if p.query else None
base = p._replace(query="").geturl()
if query:
verified_redirect_uris.append((base, parse_qs(query)))
else:
Expand All @@ -1353,11 +1352,13 @@ def _verify_post_logout_uri(self, request):
"""Verify correct format of post_logout_redirect_uris."""
plruri = []
for uri in request["post_logout_redirect_uris"]:
if urlparse(uri).fragment:
part = urlparse(uri)
if part.fragment:
raise InvalidPostLogoutUri(
"post_logout_redirect_uris contains fragment"
)
base, query = splitquery(uri)
query = part.query if part.query else None
base = part._replace(query="").geturl()
if query:
plruri.append((base, parse_qs(query)))
else:
Expand Down
9 changes: 5 additions & 4 deletions src/oic/utils/client_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
from typing import Any
from typing import List
from urllib.parse import parse_qs
from urllib.parse import splitquery # type: ignore
from urllib.parse import urlparse

from oic import rndstr
Expand All @@ -33,13 +32,15 @@ def unpack_redirect_uri(redirect_uris):
def pack_redirect_uri(redirect_uris):
ruri = []
for uri in redirect_uris:
if urlparse(uri).fragment:
parts = urlparse(uri)
if parts.fragment:
print("Faulty redirect uri, contains fragment", file=sys.stderr)
base, query = splitquery(uri)
query = parts.query
base = parts._replace(query="").geturl()
if query:
ruri.append([base, parse_qs(query)])
else:
ruri.append([base, query])
ruri.append([base, None])

return ruri

Expand Down
2 changes: 1 addition & 1 deletion tests/test_oauth2.py
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ class ExtensionMessageFactory(OauthMessageFactory):
)

resp = self.client.do_access_token_request(request_args=request_args)
request = parse_qs(rsps.calls[0].request.body)
request = parse_qs(str(rsps.calls[0].request.body))
assert request["assertion"][0] == "saml assertion"
assert (
request["grant_type"][0]
Expand Down
2 changes: 1 addition & 1 deletion tests/test_oic.py
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ def test_do_check_session_request(self):
body=IDTOKEN.to_json(),
)
resp = self.client.do_check_session_request(request_args=args)
parsed = parse_qs(urlparse(rsps.calls[0].request.url).query)
parsed = parse_qs(str(urlparse(rsps.calls[0].request.url).query))
assert parsed["id_token"] is not None

assert isinstance(resp, IdToken)
Expand Down
2 changes: 1 addition & 1 deletion tests/test_oic_consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -998,7 +998,7 @@ def test_client_register(self):
with responses.RequestsMock() as rsps:
rsps.add(responses.POST, "https://example.com/register/", json=reg_resp)
c.register("https://example.com/register/")
assert json.loads(rsps.calls[0].request.body) == {
assert json.loads(str(rsps.calls[0].request.body)) == {
"application_type": "web",
"response_types": ["code"],
"redirect_uris": ["https://example.com/authz"],
Expand Down

0 comments on commit f6d836a

Please sign in to comment.