Skip to content

Commit 3269e08

Browse files
committed
Encrypting request parameter turned off by default but if turned on should actually work.
1 parent 3c322c4 commit 3269e08

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

src/idpyoidc/client/oauth2/authorization.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ class Authorization(Service):
3232
_supports = {
3333
"response_types_supported": ["code", 'token'],
3434
"response_modes_supported": ['query', 'fragment'],
35-
"request_object_signing_alg_values_supported": claims.get_signing_algs,
36-
"request_object_encryption_alg_values_supported": claims.get_encryption_algs,
37-
"request_object_encryption_enc_values_supported": claims.get_encryption_encs,
35+
# Below not OAuth2 functionality
36+
# "request_object_signing_alg_values_supported": claims.get_signing_algs,
37+
# "request_object_encryption_alg_values_supported": claims.get_encryption_algs,
38+
# "request_object_encryption_enc_values_supported": claims.get_encryption_encs,
39+
# "encrypt_request_object_supported": False,
3840
}
3941

4042
_callback_path = {

src/idpyoidc/client/oidc/authorization.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,9 @@ def construct_request_parameter(
257257

258258
_req_jwt = make_openid_request(req, **_mor_args)
259259

260+
if 'target' not in kwargs:
261+
kwargs['target'] = _context.provider_info["issuer"]
262+
260263
# Should the request be encrypted
261264
_req_jwte = request_object_encryption(_req_jwt, _context,
262265
self.upstream_get('attribute', 'keyjar'),
@@ -300,7 +303,7 @@ def oidc_post_construct(self, req, **kwargs):
300303
_req = self.construct_request_parameter(req, _request_param, **kwargs)
301304
req["request_uri"] = self.store_request_on_file(_req, **kwargs)
302305
elif _request_param == "request":
303-
_req = self.construct_request_parameter(req, _request_param)
306+
_req = self.construct_request_parameter(req, _request_param, **kwargs)
304307
req["request"] = _req
305308

306309
if _req:

src/idpyoidc/client/oidc/utils.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,15 @@ def request_object_encryption(msg, service_context, keyjar, **kwargs):
4646
except KeyError:
4747
_kid = ""
4848

49-
if "target" not in kwargs:
49+
_target = kwargs.get('target', kwargs.get('recv', None))
50+
if _target is None:
5051
raise MissingRequiredAttribute("No target specified")
5152

5253
if _kid:
53-
_keys = keyjar.get_encrypt_key(_kty, issuer_id=kwargs["target"], kid=_kid)
54+
_keys = keyjar.get_encrypt_key(_kty, issuer_id=_target, kid=_kid)
5455
_jwe["kid"] = _kid
5556
else:
56-
_keys = keyjar.get_encrypt_key(_kty, issuer_id=kwargs["target"])
57+
_keys = keyjar.get_encrypt_key(_kty, issuer_id=_target)
5758

5859
return _jwe.encrypt(_keys)
5960

src/idpyoidc/server/oidc/authorization.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class Authorization(authorization.Authorization):
7878

7979
_supports = {
8080
"claims_parameter_supported": True,
81-
"encrypt_request_object_supported": True,
81+
"encrypt_request_object_supported": False,
8282
"request_object_signing_alg_values_supported": claims.get_signing_algs,
8383
"request_object_encryption_alg_values_supported": claims.get_encryption_algs,
8484
"request_object_encryption_enc_values_supported": claims.get_encryption_encs,

0 commit comments

Comments
 (0)