summaryrefslogtreecommitdiff
path: root/src/saml2/entity.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/saml2/entity.py')
-rw-r--r--src/saml2/entity.py20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/saml2/entity.py b/src/saml2/entity.py
index fad9326a..c9572aef 100644
--- a/src/saml2/entity.py
+++ b/src/saml2/entity.py
@@ -53,7 +53,7 @@ from saml2.samlp import ArtifactResponse
from saml2.samlp import Artifact
from saml2.samlp import LogoutRequest
from saml2.samlp import AttributeQuery
-from saml2.mdstore import destinations, response_destinations
+from saml2.mdstore import all_locations
from saml2 import BINDING_HTTP_POST
from saml2 import BINDING_HTTP_REDIRECT
from saml2 import BINDING_SOAP
@@ -249,8 +249,9 @@ class Entity(HTTPBase):
return info
- def pick_binding(self, service, bindings=None, descr_type="", request=None,
- entity_id="", response=False):
+ def pick_binding(
+ self, service, bindings=None, descr_type="", request=None, entity_id=""
+ ):
if request and not entity_id:
entity_id = request.issuer.text.strip()
@@ -284,10 +285,8 @@ class Entity(HTTPBase):
if srv["index"] == _index:
return binding, srv["location"]
else:
- if response:
- return binding, response_destinations(srvs)[0]
- else:
- return binding, destinations(srvs)[0]
+ destination = next(all_locations(srvs), None)
+ return binding, destination
except UnsupportedBinding:
pass
@@ -352,10 +351,9 @@ class Entity(HTTPBase):
else:
descr_type = "spsso"
- binding, destination = self.pick_binding(rsrv, bindings,
- descr_type=descr_type,
- request=message,
- response=True)
+ binding, destination = self.pick_binding(
+ rsrv, bindings, descr_type=descr_type, request=message
+ )
info["binding"] = binding
info["destination"] = destination