diff --git a/src/saml2/config.py b/src/saml2/config.py index e20aa68..92f0386 100644 --- a/src/saml2/config.py +++ b/src/saml2/config.py @@ -370,8 +370,7 @@ class SPConfig(Config): the SOAP binding) :return: list of endpoints """ - return self.metadata.single_logout_services(entity_id, "idp", - binding=binding) + return self.metadata.single_logout_service(entity_id, binding=binding) def single_sign_on_services(self, entity_id, binding=BINDING_HTTP_REDIRECT): @@ -381,8 +380,7 @@ class SPConfig(Config): :param binding: The preferred binding :return: list of endpoints """ - return self.metadata.single_sign_on_services(entity_id, - binding=binding) + return self.metadata.single_sign_on_service(entity_id, binding=binding) def attribute_services(self, entity_id, binding=BINDING_SOAP): """ returns a list of endpoints to use for attribute requests to @@ -461,8 +459,7 @@ class IdPConfig(Config): :return: list of endpoints """ - return self.metadata.single_logout_services(entity_id, "sp", - binding=binding) + return self.metadata.single_logout_service(entity_id, binding=binding) def assertion_consumer_services(self, entity_id, binding=BINDING_HTTP_POST): return self.metadata.assertion_consumer_services(entity_id, binding) diff --git a/src/saml2/server.py b/src/saml2/server.py index 4770da4..3570dcc 100644 --- a/src/saml2/server.py +++ b/src/saml2/server.py @@ -347,11 +347,11 @@ class Server(object): _binding = authn_request.message.protocol_binding consumer_url = self.metadata.assertion_consumer_service(sp_entity_id, binding=_binding)[0] - except KeyError: + except (KeyError, IndexError): _log_info("Failed to find consumer URL for %s" % sp_entity_id) _log_info("entities: %s" % self.metadata.entity.keys()) raise UnknownPrincipal(sp_entity_id) - + if not consumer_url: # what to do ? _log_info("Couldn't find a consumer URL binding=%s entity_id=%s" % ( _binding,sp_entity_id))