Skip to content
This repository was archived by the owner on Jun 12, 2021. It is now read-only.

Commit a5ba9ef

Browse files
committed
More pylinting.
1 parent 32a2b18 commit a5ba9ef

File tree

4 files changed

+75
-59
lines changed

4 files changed

+75
-59
lines changed

src/oidcservice/oidc/access_token.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
__author__ = 'Roland Hedberg'
1212

13-
logger = logging.getLogger(__name__)
13+
LOGGER = logging.getLogger(__name__)
1414

1515

1616
class AccessToken(access_token.AccessToken):

src/oidcservice/oidc/authorization.py

Lines changed: 72 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
__author__ = 'Roland Hedberg'
1717

18-
logger = logging.getLogger(__name__)
18+
LOGGER = logging.getLogger(__name__)
1919

2020

2121
class Authorization(authorization.Authorization):
@@ -105,7 +105,77 @@ def oidc_pre_construct(self, request_args=None, **kwargs):
105105

106106
return request_args, post_args
107107

108+
def get_request_object_signing_alg(self, **kwargs):
109+
alg = ''
110+
for arg in ["request_object_signing_alg", "algorithm"]:
111+
try: # Trumps everything
112+
alg = kwargs[arg]
113+
except KeyError:
114+
pass
115+
else:
116+
break
117+
118+
if not alg:
119+
try:
120+
alg = self.service_context.behaviour[
121+
"request_object_signing_alg"]
122+
except KeyError: # Use default
123+
alg = "RS256"
124+
return alg
125+
126+
def store_request_on_file(self, req, **kwargs):
127+
"""
128+
Stores the request parameter in a file.
129+
:param req: The request
130+
:param kwargs: Extra keyword arguments
131+
:return: The URL the OP should use to access the file
132+
"""
133+
try:
134+
_webname = self.service_context.registration_response['request_uris'][0]
135+
filename = self.service_context.filename_from_webname(_webname)
136+
except KeyError:
137+
filename, _webname = construct_request_uri(**kwargs)
138+
139+
fid = open(filename, mode="w")
140+
fid.write(req)
141+
fid.close()
142+
return _webname
143+
144+
def construct_request_parameter(self, req, request_method, **kwargs):
145+
"""Construct a request parameter"""
146+
alg = self.get_request_object_signing_alg(**kwargs)
147+
kwargs["request_object_signing_alg"] = alg
148+
149+
if "keys" not in kwargs and alg and alg != "none":
150+
kwargs["keys"] = self.service_context.keyjar
151+
152+
_srv_cntx = self.service_context
153+
kwargs['issuer'] = _srv_cntx.client_id
154+
try:
155+
kwargs['recv'] = _srv_cntx.provider_info['issuer']
156+
except KeyError:
157+
kwargs['recv'] = _srv_cntx.issuer
158+
del kwargs['service']
159+
160+
_req = make_openid_request(req, **kwargs)
161+
162+
# Should the request be encrypted
163+
_req = request_object_encryption(_req, self.service_context,
164+
**kwargs)
165+
166+
if request_method == "request":
167+
req["request"] = _req
168+
else: # MUST be request_uri
169+
req["request_uri"] = self.store_request_on_file(_req, **kwargs)
170+
108171
def oidc_post_construct(self, req, **kwargs):
172+
"""
173+
Modify the request arguments.
174+
175+
:param req: The request
176+
:param kwargs: Extra keyword arguments
177+
:return: A possibly modified request.
178+
"""
109179
if 'openid' in req['scope']:
110180
_response_type = req['response_type'][0]
111181
if 'id_token' in _response_type or 'code' in _response_type:
@@ -122,61 +192,7 @@ def oidc_post_construct(self, req, **kwargs):
122192
else:
123193
del kwargs['request_param']
124194

125-
alg = ''
126-
for arg in ["request_object_signing_alg", "algorithm"]:
127-
try: # Trumps everything
128-
alg = kwargs[arg]
129-
except KeyError:
130-
pass
131-
else:
132-
break
133-
134-
if not alg:
135-
try:
136-
alg = self.service_context.behaviour[
137-
"request_object_signing_alg"]
138-
except KeyError: # Use default
139-
alg = "RS256"
140-
141-
kwargs["request_object_signing_alg"] = alg
142-
143-
if "keys" not in kwargs and alg and alg != "none":
144-
# _kty = alg2keytype(alg)
145-
# try:
146-
# _kid = kwargs["sig_kid"]
147-
# except KeyError:
148-
# _kid = self.service_context.kid["sig"].get(_kty, None)
149-
150-
kwargs["keys"] = self.service_context.keyjar
151-
152-
_srv_cntx = self.service_context
153-
kwargs['issuer'] = _srv_cntx.client_id
154-
try:
155-
kwargs['recv'] = _srv_cntx.provider_info['issuer']
156-
except KeyError:
157-
kwargs['recv'] = _srv_cntx.issuer
158-
del kwargs['service']
159-
160-
_req = make_openid_request(req, **kwargs)
161-
162-
# Should the request be encrypted
163-
_req = request_object_encryption(_req, self.service_context,
164-
**kwargs)
165-
166-
if _request_method == "request":
167-
req["request"] = _req
168-
else: # MUST be request_uri
169-
try:
170-
_webname = self.service_context.registration_response[
171-
'request_uris'][0]
172-
filename = self.service_context.filename_from_webname(
173-
_webname)
174-
except KeyError:
175-
filename, _webname = construct_request_uri(**kwargs)
176-
fid = open(filename, mode="w")
177-
fid.write(_req)
178-
fid.close()
179-
req["request_uri"] = _webname
195+
self.construct_request_parameter(req, _request_method, **kwargs)
180196

181197
self.store_item(req, 'auth_request', req['state'])
182198
return req

src/oidcservice/oidc/provider_info_discovery.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def __init__(self, service_context, state_db, client_authn_factory=None,
8282
client_authn_factory=client_authn_factory, conf=conf)
8383

8484
def update_service_context(self, resp, **kwargs):
85-
self._update_service_context(resp, **kwargs)
85+
self._update_service_context(resp)
8686
self.match_preferences(resp, self.service_context.issuer)
8787
if 'pre_load_keys' in self.conf and self.conf['pre_load_keys']:
8888
_jwks = self.service_context.keyjar.export_jwks_as_json(

src/oidcservice/service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ def get_request_parameters(self, request_args=None, method="",
310310
request_body_type = self.request_body_type
311311

312312
request = self.construct_request(request_args=request_args, **kwargs)
313-
313+
LOGGER.debug("Request: %s", request.to_dict())
314314
_info = {'method': method}
315315

316316
_args = kwargs.copy()

0 commit comments

Comments
 (0)