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

Commit 4cd94c7

Browse files
committed
Cater for client_id(=entity_id) in request being different from the one
assigned by the OP.
1 parent 5ef1ce6 commit 4cd94c7

5 files changed

Lines changed: 14 additions & 10 deletions

File tree

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ def run_tests(self):
6666
'quality': ['pylama', 'isort', 'eradicate', 'mypy', 'black', 'bandit'],
6767
},
6868
install_requires=[
69-
"oidcmsg>=0.6.5",
70-
"cryptojwt>=0.7.12",
69+
"oidcmsg>=0.6.6",
70+
"cryptojwt>=0.7.13",
7171
"jinja2",
7272
"pyyaml",
7373
"requests",

src/oidcendpoint/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
except ImportError:
77
import random as rnd
88

9-
__version__ = "0.12.1"
9+
__version__ = "0.12.2"
1010

1111

1212
DEF_SIGN_ALG = {

src/oidcendpoint/client_authn.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ def valid_client_info(cinfo):
205205

206206
def verify_client(
207207
endpoint_context, request, authorization_info=None, get_client_id_from_token=None,
208-
endpoint=None
208+
endpoint=None, also_known_as=None
209209
):
210210
"""
211211
Initiated Guessing !
@@ -254,7 +254,12 @@ def verify_client(
254254
else:
255255
raise UnknownOrNoAuthnMethod(authorization_info)
256256

257-
client_id = auth_info.get("client_id")
257+
if also_known_as:
258+
client_id = also_known_as[auth_info.get("client_id")]
259+
auth_info["client_id"] = client_id
260+
else:
261+
client_id = auth_info.get("client_id")
262+
258263
_token = auth_info.get("token")
259264

260265
if client_id:

src/oidcendpoint/endpoint.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,9 @@ def client_authentication(self, request, auth=None, **kwargs):
268268
:return: client_id or raise an exception
269269
"""
270270

271-
_endpoint = kwargs.get("endpoint")
272-
273271
try:
274272
authn_info = verify_client(
275-
self.endpoint_context, request, auth, self.get_client_id_from_token,
276-
endpoint=_endpoint
273+
self.endpoint_context, request, auth, self.get_client_id_from_token, **kwargs
277274
)
278275
except UnknownOrNoAuthnMethod:
279276
if self.client_authn_method is None:

src/oidcendpoint/oidc/registration.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,9 +371,11 @@ def client_registration_setup(self, request, new_id=True, set_secret=True):
371371
if new_id:
372372
# create new id och secret
373373
client_id = rndstr(12)
374-
# cdb client_id MUT be unique!
374+
# cdb client_id MUST be unique!
375375
while client_id in _context.cdb:
376376
client_id = rndstr(12)
377+
if "client_id" in request:
378+
del request["client_id"]
377379
else:
378380
client_id = request.get("client_id")
379381
if not client_id:

0 commit comments

Comments
 (0)