diff --git a/authentic/liberty/saml2.ptl b/authentic/liberty/saml2.ptl index 41b4509..11eeba0 100644 --- a/authentic/liberty/saml2.ptl +++ b/authentic/liberty/saml2.ptl @@ -732,7 +732,8 @@ consent_obtained: %s intro_cookie: %s' % (user_authenticated, consent_obtained, if not self.check_logout_request(logout): return self.slo_sp_finish(logout, method, error = error) - # logout user now! + # logout user now! but remember who was logged. + session.previous_user = session.user session.user = None if method == lasso.HTTP_METHOD_SOAP: get_session_manager().expire_session() @@ -808,6 +809,8 @@ consent_obtained: %s intro_cookie: %s' % (user_authenticated, consent_obtained, load_identity(logout, identity = None, session = session) if logout.identity: session.lasso_identity_dump = logout.identity.dump() + # remember who was logged + session.previous_user = session.user session.user = None logout.resetProviderIdIndex() if method == lasso.HTTP_METHOD_SOAP: diff --git a/authentic/sessions.py b/authentic/sessions.py index 4fd31e1..c4e578e 100644 --- a/authentic/sessions.py +++ b/authentic/sessions.py @@ -26,6 +26,8 @@ class BasicSession(Session, CaptchaSession, StorableObject): __remember = None # identifier of the last requesting service _service = None + # keep reference to the last user logged, after slo for example + previous_user = None _has_info_keys = [ "lasso_login_dump", "lasso_session_dump", "question_key", "after_url", "name_identifiers", "proxied_idp",