@@ -40,7 +40,9 @@ def ecp_capable(headers):
4040
4141
4242#noinspection PyUnusedLocal
43- def ecp_auth_request (cls , entityid = None , relay_state = "" , sign = False ):
43+ def ecp_auth_request (
44+ cls , entityid = None , relay_state = "" , sign = None , sign_alg = None , digest_alg = None
45+ ):
4446 """ Makes an authentication request.
4547
4648 :param entityid: The entity ID of the IdP to send the request to
@@ -59,9 +61,12 @@ def ecp_auth_request(cls, entityid=None, relay_state="", sign=False):
5961
6062 # must_understand and actor according to the standard
6163 #
62- paos_request = paos .Request (must_understand = "1" , actor = ACTOR ,
63- response_consumer_url = my_url ,
64- service = SERVICE )
64+ paos_request = paos .Request (
65+ must_understand = "1" ,
66+ actor = ACTOR ,
67+ response_consumer_url = my_url ,
68+ service = SERVICE ,
69+ )
6570
6671 eelist .append (element_to_extension_element (paos_request ))
6772
@@ -73,7 +78,13 @@ def ecp_auth_request(cls, entityid=None, relay_state="", sign=False):
7378
7479 location = cls ._sso_location (entityid , binding = BINDING_SOAP )
7580 req_id , authn_req = cls .create_authn_request (
76- location , binding = BINDING_PAOS , service_url_binding = BINDING_PAOS )
81+ location ,
82+ binding = BINDING_PAOS ,
83+ service_url_binding = BINDING_PAOS ,
84+ sign = sign ,
85+ sign_alg = sign_alg ,
86+ digest_alg = digest_alg ,
87+ )
7788
7889 body = soapenv .Body ()
7990 body .extension_elements = [element_to_extension_element (authn_req )]
@@ -96,16 +107,16 @@ def ecp_auth_request(cls, entityid=None, relay_state="", sign=False):
96107 must_understand = "1" ,
97108 provider_name = None ,
98109 issuer = saml .Issuer (text = authn_req .issuer .text ),
99- idp_list = idp_list )
110+ idp_list = idp_list ,
111+ )
100112
101113 eelist .append (element_to_extension_element (ecp_request ))
102114
103115 # ----------------------------------------
104116 # <ecp:RelayState>
105117 # ----------------------------------------
106118
107- relay_state = ecp .RelayState (actor = ACTOR , must_understand = "1" ,
108- text = relay_state )
119+ relay_state = ecp .RelayState (actor = ACTOR , must_understand = "1" , text = relay_state )
109120
110121 eelist .append (element_to_extension_element (relay_state ))
111122
@@ -118,20 +129,22 @@ def ecp_auth_request(cls, entityid=None, relay_state="", sign=False):
118129
119130 soap_envelope = soapenv .Envelope (header = header , body = body )
120131
121- return req_id , "%s" % soap_envelope
132+ return req_id , str ( soap_envelope )
122133
123134
124135def handle_ecp_authn_response (cls , soap_message , outstanding = None ):
125136 rdict = soap .class_instances_from_soap_enveloped_saml_thingies (
126- soap_message , [paos , ecp , samlp ])
137+ soap_message , [paos , ecp , samlp ]
138+ )
127139
128140 _relay_state = None
129141 for item in rdict ["header" ]:
130142 if item .c_tag == "RelayState" and item .c_namespace == ecp .NAMESPACE :
131143 _relay_state = item
132144
133- response = authn_response (cls .config , cls .service_urls (), outstanding ,
134- allow_unsolicited = True )
145+ response = authn_response (
146+ cls .config , cls .service_urls (), outstanding , allow_unsolicited = True
147+ )
135148
136149 response .loads ("%s" % rdict ["body" ], False , soap_message )
137150 response .verify ()
0 commit comments