Added a method that checks any given return URL against what's registered in metadata.
This commit is contained in:
@@ -62,7 +62,8 @@ class DiscoveryServer(Entity):
|
|||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
def create_discovery_service_response(self, return_url=None,
|
@staticmethod
|
||||||
|
def create_discovery_service_response(return_url=None,
|
||||||
returnIDParam="entityID",
|
returnIDParam="entityID",
|
||||||
entity_id=None, **kwargs):
|
entity_id=None, **kwargs):
|
||||||
if return_url is None:
|
if return_url is None:
|
||||||
@@ -87,3 +88,13 @@ class DiscoveryServer(Entity):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def verify_return(self, entity_id, return_url):
|
||||||
|
for endp in self.metadata.discovery_response(entity_id):
|
||||||
|
try:
|
||||||
|
assert return_url.startswith(endp["location"])
|
||||||
|
except AssertionError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user