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

Commit 1f3e0cc

Browse files
committed
Merge branch 'master' of github.com:IdentityPython/oidcendpoint
2 parents 56836cc + 91800cc commit 1f3e0cc

5 files changed

Lines changed: 30 additions & 31 deletions

File tree

src/oidcendpoint/cookie.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from cryptojwt.jwk.hmac import SYMKey
1515
from cryptojwt.jwk.jwk import key_from_jwk_dict
1616
from cryptojwt.jws.hmac import HMACSigner
17-
from cryptojwt.key_bundle import init_key
17+
from cryptojwt.key_bundle import init_key, import_jwk
1818
from cryptojwt.utils import as_bytes
1919
from cryptojwt.utils import as_unicode
2020
from cryptojwt.utils import b64e
@@ -301,7 +301,10 @@ def __init__(
301301
else:
302302
self.sign_key = SYMKey(k=sign_key)
303303
elif sign_jwk:
304-
self.sign_key = init_key(**sign_jwk)
304+
if isinstance(sign_jwk, dict):
305+
self.sign_key = init_key(**sign_jwk)
306+
else:
307+
self.sign_key = import_jwk(sign_jwk)
305308
else:
306309
self.sign_key = None
307310

@@ -313,7 +316,10 @@ def __init__(
313316
else:
314317
self.enc_key = SYMKey(k=enc_key)
315318
elif enc_jwk:
316-
self.enc_key = init_key(**enc_jwk)
319+
if isinstance(enc_jwk, dict):
320+
self.enc_key = init_key(**enc_jwk)
321+
else:
322+
self.enc_key = import_jwk(enc_jwk)
317323
else:
318324
self.enc_key = None
319325

src/oidcendpoint/endpoint_context.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,9 @@ def __init__(
136136

137137
# set self.sdb
138138
if session_db:
139-
self.set_session_db(conf, sso_db, db=session_db)
139+
self.set_session_db(sso_db, db=session_db)
140140
else:
141-
self.set_session_db(conf, sso_db)
141+
self.set_session_db(sso_db)
142142

143143
self.scope2claims = SCOPE2CLAIMS
144144

@@ -220,9 +220,9 @@ def __init__(
220220
# client registration access tokens
221221
self.registration_access_token = {}
222222

223-
def set_session_db(self, conf, sso_db=None, db=None):
223+
def set_session_db(self, sso_db=None, db=None):
224224
sso_db = sso_db or SSODb()
225-
self.do_session_db(conf, sso_db, db)
225+
self.do_session_db(sso_db, db)
226226
# append useinfo db to the session db
227227
self.do_userinfo()
228228
logger.debug('Session DB: {}'.format(self.sdb.__dict__))
@@ -296,7 +296,7 @@ def do_sub_func(self):
296296
else:
297297
self._sub_func[key] = args["function"]
298298

299-
def do_session_db(self, conf, sso_db, db=None):
299+
def do_session_db(self, sso_db, db=None):
300300
self.sdb = create_session_db(
301301
self, self.th_args, db=db,
302302
sso_db=sso_db,

src/oidcendpoint/oidc/session.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -381,11 +381,8 @@ def do_verified_logout(self, sid, client_id, alla=False, **kwargs):
381381
else:
382382
_res = self.logout_from_client(sid=sid, client_id=client_id)
383383

384-
try:
385-
bcl = _res["blu"]
386-
except KeyError:
387-
pass
388-
else:
384+
bcl = _res.get("blu")
385+
if bcl:
389386
# take care of Back channel logout first
390387
for _cid, spec in bcl.items():
391388
_url, sjwt = spec
@@ -404,10 +401,7 @@ def do_verified_logout(self, sid, client_id, alla=False, **kwargs):
404401
elif res.status_code >= 400:
405402
logger.info("failed to logout from {}".format(_cid))
406403

407-
try:
408-
return _res["flu"].values()
409-
except KeyError:
410-
return []
404+
return _res["flu"].values() if _res.get("fluu") else []
411405

412406
def kill_cookies(self):
413407
_ec = self.endpoint_context

src/oidcendpoint/session.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ def delete_kv2sid(self, key, value):
232232
self._db.delete(KEY_FORMAT.format(key, value))
233233

234234
def get_sid_by_kv(self, key, value):
235+
""" KEY_FORMAT = "__{}__{}" """
235236
return self._db.get(KEY_FORMAT.format(key, value))
236237

237238
def get_token(self, sid):
@@ -451,10 +452,8 @@ def revoke_token(self, token, token_type=""):
451452
def revoke_all_tokens(self, token):
452453
_sinfo = self[token]
453454
for typ in self.handler.keys():
454-
try:
455+
if _sinfo.get(typ):
455456
self.revoke_token(_sinfo[typ], typ)
456-
except KeyError:
457-
pass
458457

459458
def revoke_session(self, sid="", token=""):
460459
"""
@@ -559,10 +558,10 @@ def get_authentication_event(self, sid):
559558
sesinf = session_info.get("authn_event")
560559
return sesinf or ValueError("No Authn event info")
561560

561+
562562
def create_session_db(ec, token_handler_args, db=None,
563563
sso_db=None, sub_func=None):
564564
_token_handler = token_handler.factory(ec, **token_handler_args)
565-
566565
db = db or InMemoryDataBase()
567566
sso_db = sso_db or SSODb()
568567
return SessionDB(db, _token_handler, sso_db, sub_func=sub_func)

src/oidcendpoint/sso_db.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def set(self, label, key, value):
3535
def get(self, label, key):
3636
_key = KEY_FORMAT.format(label, key)
3737
value = self._db.get(_key)
38-
logger.debug("SSODb get {} [{}]".format(key, value))
38+
logger.debug("SSODb get {} - {}: {}".format(label, key, value))
3939
return value
4040

4141
def delete(self, label, key):
@@ -45,16 +45,16 @@ def delete(self, label, key):
4545
def remove(self, label, key, value):
4646
_key = KEY_FORMAT.format(label, key)
4747
_values = self._db.get(_key)
48-
if _values:
49-
try:
50-
_values.remove(value)
51-
except ValueError:
52-
pass
48+
vcount = len(_values)
49+
# full clean up
50+
while value in _values:
51+
_values.remove(value)
52+
# if changes have been made -> update them
53+
if vcount != len(_values):
54+
if _values:
55+
self._db.set(_key, _values)
5356
else:
54-
if _values:
55-
self._db.set(_key, _values)
56-
else:
57-
self._db.delete(_key)
57+
self._db.delete(_key)
5858

5959
def map_sid2uid(self, sid, uid):
6060
"""

0 commit comments

Comments
 (0)