Skip to content

Commit 696e36a

Browse files
committed
WIP callers
Signed-off-by: Ivan Kanakarakis <[email protected]>
1 parent a159cc5 commit 696e36a

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

src/saml2/ecp.py

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

124135
def 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()

src/saml2/s2repoze/plugins/sp.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,6 @@ def _pick_idp(self, environ, came_from):
271271
#### IChallenger ####
272272
# noinspection PyUnusedLocal
273273
def challenge(self, environ, _status, _app_headers, _forget_headers):
274-
275274
_cli = self.saml_client
276275

277276
if "REMOTE_USER" in environ:
@@ -346,7 +345,7 @@ def challenge(self, environ, _status, _app_headers, _forget_headers):
346345
)
347346

348347
if _cli.authn_requests_signed:
349-
_sid = saml2.s_utils.sid()
348+
_sid = sid()
350349
req_id, msg_str = _cli.create_authn_request(
351350
dest,
352351
vorg=vorg_name,
@@ -357,7 +356,10 @@ def challenge(self, environ, _status, _app_headers, _forget_headers):
357356
_sid = req_id
358357
else:
359358
req_id, req = _cli.create_authn_request(
360-
dest, vorg=vorg_name, sign=False, extensions=extensions
359+
dest,
360+
vorg=vorg_name,
361+
sign=False,
362+
extensions=extensions,
361363
)
362364
msg_str = "%s" % req
363365
_sid = req_id

0 commit comments

Comments
 (0)