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

Commit 91800cc

Browse files
authored
Merge pull request #25 from peppelinux/master
minor changes in session
2 parents 7b3849f + 73fcad5 commit 91800cc

File tree

3 files changed

+18
-19
lines changed

3 files changed

+18
-19
lines changed

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__))
@@ -292,7 +292,7 @@ def do_sub_func(self):
292292
else:
293293
self._sub_func[key] = args["function"]
294294

295-
def do_session_db(self, conf, sso_db, db=None):
295+
def do_session_db(self, sso_db, db=None):
296296
self.sdb = create_session_db(
297297
self, self.th_args, db=db,
298298
sso_db=sso_db,

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)