blob: 39052c8b99c3bb3c501de141dc1fecbe06f9e936 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import lasso
lasso.init()
## Process the authentication response returned by identity provider and send received artifact to identity
## provider.
##
## Called after a HTTP redirect from identity provider.
query = [...] # Get current URL query.
server_dump = [...] # Load server_dump from file or database or...
server = lasso.Server.new_from_dump(server_dump)
login = lasso.Login.new(server)
if login.init_request(query, lasso.httpMethodRedirect):
raise Exception('Login error')
if login.build_request_msg():
raise Exception('Login error')
soap_response = [...] # Send SOAP message login.msg_body to URL login.msg_url.
if login.process_response(soap_response):
raise Exception('Login error')
name_identifier = login.response.name_identifier
account = [...] # Retrieve user account having this name_identifier.
if account:
user_dump = [...] # Retrieve string user_dump from account.
else:
account = [...] # Create new account.
user_dump = None
login.set_user_from_dump(user_dump)
# Save the new or updated user_dump into account.
user_dump = login.user.dump()
[...] # Store string user_dump into account.
# User is now authenticated => create session, cookie...
[...]
lasso.shutdown()
|