Skip to content

Commit 4ca4201

Browse files
committed
Added SLO with nameID and SessionIndex in the demos
1 parent 105a0de commit 4ca4201

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

demo-django/demo/views.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,22 @@ def index(request):
4040
return_to = OneLogin_Saml2_Utils.get_self_url(req) + reverse('attrs')
4141
return HttpResponseRedirect(auth.login(return_to))
4242
elif 'slo' in req['get_data']:
43-
return HttpResponseRedirect(auth.logout())
43+
name_id = None
44+
session_index = None
45+
if 'samlNameId' in request.session:
46+
name_id = request.session['samlNameId']
47+
if 'samlSessionIndex' in request.session:
48+
session_index = request.session['samlSessionIndex']
49+
50+
return HttpResponseRedirect(auth.logout(name_id=name_id, session_index=session_index))
4451
elif 'acs' in req['get_data']:
4552
auth.process_response()
4653
errors = auth.get_errors()
4754
not_auth_warn = not auth.is_authenticated()
4855
if not errors:
4956
request.session['samlUserdata'] = auth.get_attributes()
57+
request.session['samlNameId'] = auth.get_nameid()
58+
request.session['samlSessionIndex'] = auth.get_session_index()
5059
if 'RelayState' in req['post_data'] and OneLogin_Saml2_Utils.get_self_url(req) != req['post_data']['RelayState']:
5160
return HttpResponseRedirect(auth.redirect_to(req['post_data']['RelayState']))
5261
elif 'sls' in req['get_data']:

demo-flask/index.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,22 @@ def index():
4646
return_to = '%sattrs/' % request.host_url
4747
return redirect(auth.login(return_to))
4848
elif 'slo' in request.args:
49-
return redirect(auth.logout())
49+
name_id = None
50+
session_index = None
51+
if 'samlNameId' in request.session:
52+
name_id = request.session['samlNameId']
53+
if 'samlSessionIndex' in request.session:
54+
session_index = request.session['samlSessionIndex']
55+
56+
return redirect(auth.logout(name_id=name_id, session_index=session_index))
5057
elif 'acs' in request.args:
5158
auth.process_response()
5259
errors = auth.get_errors()
5360
not_auth_warn = not auth.is_authenticated()
5461
if len(errors) == 0:
5562
session['samlUserdata'] = auth.get_attributes()
63+
request.session['samlNameId'] = auth.get_nameid()
64+
request.session['samlSessionIndex'] = auth.get_session_index()
5665
self_url = OneLogin_Saml2_Utils.get_self_url(req)
5766
if 'RelayState' in request.form and self_url != request.form['RelayState']:
5867
return redirect(auth.redirect_to(request.form['RelayState']))

0 commit comments

Comments
 (0)