@@ -378,7 +378,35 @@ def get_last_authn_contexts(self):
378
378
"""
379
379
return self .__last_authn_contexts
380
380
381
- def login (self , return_to = None , force_authn = False , is_passive = False , set_nameid_policy = True , name_id_value_req = None ):
381
+ def _create_authn_request (
382
+ self , force_authn = False , is_passive = False , set_nameid_policy = True , name_id_value_req = None
383
+ ):
384
+ authn_request = self .authn_request_class (self .__settings , force_authn , is_passive , set_nameid_policy , name_id_value_req )
385
+
386
+ self .__last_request = authn_request .get_xml ()
387
+ self .__last_request_id = authn_request .get_id ()
388
+ return authn_request
389
+
390
+ def login_post (self , return_to = None , ** authn_kwargs ):
391
+ authn_request = self ._create_authn_request (** authn_kwargs )
392
+ saml_request = OneLogin_Saml2_Utils .b64encode (
393
+ OneLogin_Saml2_Utils .add_sign (
394
+ authn_request .get_request (deflate = False , base64_encode = False ),
395
+ self .__settings .get_sp_key (), self .__settings .get_sp_cert (),
396
+ sign_algorithm = OneLogin_Saml2_Constants .RSA_SHA256 ,
397
+ digest_algorithm = OneLogin_Saml2_Constants .SHA256 ,),
398
+
399
+ )
400
+ parameters = {'SAMLRequest' : saml_request }
401
+
402
+ if return_to is not None :
403
+ parameters ['RelayState' ] = return_to
404
+ else :
405
+ parameters ['RelayState' ] = OneLogin_Saml2_Utils .get_self_url_no_query (self .__request_data )
406
+
407
+ return self .get_sso_url (), parameters
408
+
409
+ def login (self , return_to = None , ** authn_kwargs ):
382
410
"""
383
411
Initiates the SSO process.
384
412
@@ -400,9 +428,7 @@ def login(self, return_to=None, force_authn=False, is_passive=False, set_nameid_
400
428
:returns: Redirection URL
401
429
:rtype: string
402
430
"""
403
- authn_request = self .authn_request_class (self .__settings , force_authn , is_passive , set_nameid_policy , name_id_value_req )
404
- self .__last_request = authn_request .get_xml ()
405
- self .__last_request_id = authn_request .get_id ()
431
+ authn_request = self ._create_authn_request (** authn_kwargs )
406
432
407
433
saml_request = authn_request .get_request ()
408
434
parameters = {'SAMLRequest' : saml_request }
0 commit comments