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

Commit 7d2cb95

Browse files
committed
Class attributes instead of member of self.args.
1 parent 5532cd5 commit 7d2cb95

1 file changed

Lines changed: 20 additions & 10 deletions

File tree

src/oidcendpoint/jwt_token.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313

1414

1515
class JWTToken(Token):
16+
init_args = {
17+
'add_claims_by_scope': False,
18+
'enable_claims_per_client': False,
19+
"add_claims": {}
20+
}
21+
1622
def __init__(
1723
self,
1824
typ,
@@ -28,7 +34,7 @@ def __init__(
2834
Token.__init__(self, typ, **kwargs)
2935
self.token_type = token_type
3036
self.lifetime = lifetime
31-
self.args = kwargs
37+
self.args = {(k,v) for k, v in kwargs.items() if k not in self.init_args.keys()}
3238

3339
self.key_jar = keyjar or ec.keyjar
3440
self.issuer = issuer or ec.issuer
@@ -37,11 +43,15 @@ def __init__(
3743
self.def_aud = aud or []
3844
self.alg = alg
3945
self.scope_claims_map = kwargs.get("scope_claims_map", ec.scope2claims)
40-
self.enable_claims_per_client = kwargs.get(
41-
"enable_claims_per_client", False
42-
)
4346

44-
def add_claims(self, payload, uinfo, claims):
47+
self.add_claims = self.init_args['add_claims']
48+
self.add_claims_by_scope = self.init_args['add_claims_by_scope']
49+
self.enable_claims_per_client = self.init_args["enable_claims_per_client"]
50+
51+
for param, default in self.init_args.items():
52+
setattr(self, param, kwargs.get(param, default))
53+
54+
def do_add_claims(self, payload, uinfo, claims):
4555
for attr in claims:
4656
if attr == "sub":
4757
continue
@@ -65,10 +75,10 @@ def __call__(
6575
"""
6676
payload = {"sid": sid, "ttype": self.type, "sub": sinfo["sub"]}
6777

68-
if "add_claims" in self.args:
69-
self.add_claims(payload, uinfo, self.args["add_claims"])
70-
if self.args.get("add_claims_by_scope", False):
71-
self.add_claims(
78+
if self.add_claims:
79+
self.do_add_claims(payload, uinfo, self.add_claims)
80+
if self.add_claims_by_scope:
81+
self.do_add_claims(
7282
payload,
7383
uinfo,
7484
scope2claims(
@@ -80,7 +90,7 @@ def __call__(
8090
client = self.cdb.get(client_id, {})
8191
client_claims = client.get("access_token_claims")
8292
if client_claims:
83-
self.add_claims(payload, uinfo, client_claims)
93+
self.do_add_claims(payload, uinfo, client_claims)
8494

8595
payload.update(kwargs)
8696
signer = JWT(

0 commit comments

Comments
 (0)