summaryrefslogtreecommitdiffstats
path: root/python/doc/tutorial/sp-logout-send-request.py
diff options
context:
space:
mode:
authorEmmanuel Raviart <eraviart@entrouvert.com>2004-07-06 18:16:02 +0000
committerEmmanuel Raviart <eraviart@entrouvert.com>2004-07-06 18:16:02 +0000
commitac64060db74dca8bd4f6ced4589d479a47242635 (patch)
tree5036db08e3950e374aa871ae80871bb104873253 /python/doc/tutorial/sp-logout-send-request.py
parent53dda91b657f818263afd759a24ef3f4966a9f89 (diff)
downloadlasso-ac64060db74dca8bd4f6ced4589d479a47242635.tar.gz
lasso-ac64060db74dca8bd4f6ced4589d479a47242635.tar.xz
lasso-ac64060db74dca8bd4f6ced4589d479a47242635.zip
Added Python files explaining how to create a SP using Lasso.
Diffstat (limited to 'python/doc/tutorial/sp-logout-send-request.py')
-rw-r--r--python/doc/tutorial/sp-logout-send-request.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/python/doc/tutorial/sp-logout-send-request.py b/python/doc/tutorial/sp-logout-send-request.py
new file mode 100644
index 00000000..d739cf14
--- /dev/null
+++ b/python/doc/tutorial/sp-logout-send-request.py
@@ -0,0 +1,29 @@
+import lasso
+
+
+## Logout initiated by service provider: Send a logout request to identity provider.
+##
+## Called when the user press logout button on service provider.
+
+server_dump = [...] # Load string server_dump from file or database or...
+server = lasso.Server.new_from_dump(server_dump)
+user_dump = [...] # Retrieve string user_dump from logged user account.
+user = lasso.User.new_from_dump(user_dump)
+logout = lasso.Logout.new(server, user)
+if logout.init_request():
+ raise Exception('Logout error')
+if logout.build_request_msg():
+ raise Exception('Logout error')
+if not logout.msg_body:
+ [...] # Reply a HTTP redirect to logout.msg_url.
+else:
+ # Send a logout SOAP message to identity provider.
+ [...] # Logout user from service provider, but do not erase user_dump.
+ soap_response = [...] # Send SOAP message logout.msg_body to URL logout.msg_url.
+ if logout.handle_response(soap_response, lasso.httpMethods['soap']):
+ raise Exception('Logout error')
+ # Save the updated user_dump into account.
+ user_dump = logout.user.dump()
+ [...] # Store string user_dump into account (replace the previous one).
+ # User is now logged out => delete session, cookie...
+ [...]