File tree Expand file tree Collapse file tree 2 files changed +20
-2
lines changed
Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Original file line number Diff line number Diff 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' ]:
Original file line number Diff line number Diff 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' ]))
You can’t perform that action at this time.
0 commit comments