diff options
author | Allan Saddi <allan@saddi.com> | 2005-04-23 09:46:05 +0000 |
---|---|---|
committer | Allan Saddi <allan@saddi.com> | 2005-04-23 09:46:05 +0000 |
commit | d5e1c18a454e3655bb604a7d65196399dc861702 (patch) | |
tree | d849afbf8bb285e4bb5294ee45709425a417f5da /flup/middleware/session.py | |
parent | 4fab5b0ff69bfed569fbf76b5f409b6418b13ca9 (diff) | |
download | flup-d5e1c18a454e3655bb604a7d65196399dc861702.tar.gz |
Ensure SessionStore.checkOutSession() never returns an invalidated Session.
Diffstat (limited to 'flup/middleware/session.py')
-rw-r--r-- | flup/middleware/session.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/flup/middleware/session.py b/flup/middleware/session.py index 81818d6..129c3e9 100644 --- a/flup/middleware/session.py +++ b/flup/middleware/session.py @@ -202,9 +202,15 @@ class SessionStore(object): try: sess = self._loadSession(identifier) if sess is not None: - assert sess.identifier not in self._checkOutList - self._checkOutList[sess.identifier] = sess - sess.touch() + if sess.isValid: + assert sess.identifier not in self._checkOutList + self._checkOutList[sess.identifier] = sess + sess.touch() + else: + # No longer valid (same as not existing). Delete/unlock + # the session. + self._deleteSession(sess.identifier) + sess = None return sess finally: self._lock.release() |