summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers/saml2/logout.py
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2015-02-26 15:25:07 -0500
committerRob Crittenden <rcritten@redhat.com>2015-03-13 10:43:34 -0400
commitbd2d62cf23e5a70d4c2b213ae63579c18413fce0 (patch)
tree8cbeef97e20807089434b3e2b6b583d0aecffadb /ipsilon/providers/saml2/logout.py
parent22e983978fcbd84896468017dd5bdacf8a18cf3c (diff)
downloadipsilon.git-logout_session.tar.gz
ipsilon.git-logout_session.tar.xz
ipsilon.git-logout_session.zip
When a new logout session is received, save old session idslogout_session
When a new login session is received and an existing session exists in logout, save the old session IDs. These will be included in the sessions to logout of the SP. This will ensure that if the user clears their cookie cache, for example, that any previous sessions will also be logged out. https://fedorahosted.org/ipsilon/ticket/64 Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Diffstat (limited to 'ipsilon/providers/saml2/logout.py')
-rw-r--r--ipsilon/providers/saml2/logout.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/ipsilon/providers/saml2/logout.py b/ipsilon/providers/saml2/logout.py
index 46aea6e..da8edcf 100644
--- a/ipsilon/providers/saml2/logout.py
+++ b/ipsilon/providers/saml2/logout.py
@@ -225,6 +225,10 @@ class LogoutRequest(ProviderPageBase):
raise cherrypy.HTTPRedirect(400, 'Failed to log out user: %s '
% e)
+ # Now set the full list of session indexes to log out
+ req = logout.get_request()
+ req.setSessionIndexes(tuple(set(session.session_indexes)))
+
session.set_logoutstate(logout.msgUrl, logout.request.id, None)
us.save_provider_data('saml2', saml_sessions)