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

Commit bc5ff79

Browse files
committed
Made scopes to claims mapping endpoint independent.
1 parent e6bbcd1 commit bc5ff79

File tree

6 files changed

+15
-14
lines changed

6 files changed

+15
-14
lines changed

src/oidcendpoint/id_token.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,7 @@ def make(self, req, sess_info, authn_req=None, user_claims=False, **kwargs):
258258
)
259259

260260
if user_claims:
261-
info = collect_user_info(_context, sess_info,
262-
scope_to_claims=self.scope_to_claims)
261+
info = collect_user_info(_context, sess_info)
263262
if userinfo is None:
264263
userinfo = info
265264
else:

src/oidcendpoint/oidc/add_on/custom_scopes.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,15 @@
66

77

88
def add_custom_scopes(endpoint, **kwargs):
9-
userinfo_endpoint = endpoint['userinfo']
9+
"""
10+
:param endpoint: A dictionary with endpoint instances as values
11+
"""
12+
# Just need an endpoint, anyone will do
13+
_endpoint = list(endpoint.values())[0]
1014

1115
_scopes = SCOPE2CLAIMS.copy()
1216
_scopes.update(kwargs)
1317

14-
userinfo_endpoint.scope_to_claims = _scopes
15-
userinfo_endpoint.endpoint_context.idtoken.scope_to_claims = _scopes
16-
userinfo_endpoint.endpoint_context.scope2claims = _scopes
18+
_endpoint.scope_to_claims = _scopes
19+
_endpoint.endpoint_context.idtoken.scope_to_claims = _scopes
20+
_endpoint.endpoint_context.scope2claims = _scopes

src/oidcendpoint/oidc/authorization.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,7 @@ def proposed_user(request):
320320
return request[cn].get("sub", "")
321321
return ""
322322

323+
323324
class Authorization(Endpoint):
324325
request_cls = oidc.AuthorizationRequest
325326
response_cls = oidc.AuthorizationResponse

src/oidcendpoint/oidc/userinfo.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ def process_request(self, request=None, **kwargs):
117117

118118
if allowed:
119119
# Scope can translate to userinfo_claims
120-
info = collect_user_info(self.endpoint_context, session,
121-
scope_to_claims=self.scope_to_claims)
120+
info = collect_user_info(self.endpoint_context, session)
122121
else:
123122
info = {
124123
"error": "invalid_request",

src/oidcendpoint/userinfo.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ def collect_user_info(endpoint_context, session, userinfo_claims=None,
114114
:return: User info
115115
"""
116116
authn_req = session["authn_req"]
117+
if scope_to_claims is None:
118+
scope_to_claims = endpoint_context.scope2claims
117119

118120
if userinfo_claims is None:
119121
uic = scope2claims(authn_req["scope"], map=scope_to_claims)
@@ -156,8 +158,7 @@ def collect_user_info(endpoint_context, session, userinfo_claims=None,
156158
return info
157159

158160

159-
def userinfo_in_id_token_claims(endpoint_context, session, def_itc=None,
160-
scope_to_claims=None):
161+
def userinfo_in_id_token_claims(endpoint_context, session, def_itc=None):
161162
"""
162163
Collect user info claims that are to be placed in the id token.
163164
@@ -179,7 +180,6 @@ def userinfo_in_id_token_claims(endpoint_context, session, def_itc=None,
179180
_claims = by_schema(endpoint_context.id_token_schema, **itc)
180181

181182
if _claims:
182-
return collect_user_info(endpoint_context, session, _claims,
183-
scope_to_claims=scope_to_claims)
183+
return collect_user_info(endpoint_context, session, _claims)
184184
else:
185185
return None

tests/test_02_client_authn.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
from oidcendpoint.endpoint_context import EndpointContext
2121
from oidcendpoint.exception import NotForMe
2222
from oidcendpoint.oidc.token import AccessToken
23-
from oidcendpoint.session import SessionInfo
24-
from oidcmsg.oidc import AuthorizationRequest
2523

2624
KEYDEFS = [
2725
{"type": "RSA", "key": "", "use": ["sig"]},

0 commit comments

Comments
 (0)