@@ -41,6 +41,10 @@ def index(request):
4141
4242 if 'sso' in req ['get_data' ]:
4343 return HttpResponseRedirect (auth .login ())
44+ # If AuthNRequest ID need to be stored in order to later validate it, do instead
45+ # sso_built_url = auth.login()
46+ # request.session['AuthNRequestID'] = auth.get_last_request_id()
47+ # return HttpResponseRedirect(sso_built_url)
4448 elif 'sso2' in req ['get_data' ]:
4549 return_to = OneLogin_Saml2_Utils .get_self_url (req ) + reverse ('attrs' )
4650 return HttpResponseRedirect (auth .login (return_to ))
@@ -58,12 +62,22 @@ def index(request):
5862 name_id_spnq = request .session ['samlNameIdSPNameQualifier' ]
5963
6064 return HttpResponseRedirect (auth .logout (name_id = name_id , session_index = session_index , nq = name_id_nq , name_id_format = name_id_format , spnq = name_id_spnq ))
65+ # If LogoutRequest ID need to be stored in order to later validate it, do instead
66+ # slo_built_url = auth.logout(name_id=name_id, session_index=session_index)
67+ # request.session['LogoutRequestID'] = auth.get_last_request_id()
68+ #return HttpResponseRedirect(slo_built_url)
6169 elif 'acs' in req ['get_data' ]:
62- auth .process_response ()
70+ request_id = None
71+ if 'AuthNRequestID' in request .session :
72+ request_id = request .session ['AuthNRequestID' ]
73+
74+ auth .process_response (request_id = request_id )
6375 errors = auth .get_errors ()
6476 not_auth_warn = not auth .is_authenticated ()
6577
6678 if not errors :
79+ if 'AuthNRequestID' in request .session :
80+ del request .session ['AuthNRequestID' ]
6781 request .session ['samlUserdata' ] = auth .get_attributes ()
6882 request .session ['samlNameId' ] = auth .get_nameid ()
6983 request .session ['samlNameIdFormat' ] = auth .get_nameid_format ()
@@ -76,8 +90,11 @@ def index(request):
7690 if auth .get_settings ().is_debug_active ():
7791 error_reason = auth .get_last_error_reason ()
7892 elif 'sls' in req ['get_data' ]:
93+ request_id = None
94+ if 'LogoutRequestID' in request .session :
95+ request_id = request .session ['LogoutRequestID' ]
7996 dscb = lambda : request .session .flush ()
80- url = auth .process_slo (delete_session_cb = dscb )
97+ url = auth .process_slo (request_id = request_id , delete_session_cb = dscb )
8198 errors = auth .get_errors ()
8299 if len (errors ) == 0 :
83100 if url is not None :
0 commit comments