@@ -24,10 +24,10 @@ def parse_discovery_service_request(self, url="", query=""):
2424
2525 # verify
2626
27- for key in ["isPassive" , "return" , "returnIDParam" , "policy" ,
28- 'entityID' ]:
27+ for key in ["isPassive" , "return" , "returnIDParam" , "policy" , 'entityID' ]:
2928 try :
30- assert len (dsr [key ]) == 1
29+ if len (dsr [key ]) != 1 :
30+ raise Exception ("Invalid DS request keys: {k}" .format (k = key ))
3131 dsr [key ] = dsr [key ][0 ]
3232 except KeyError :
3333 pass
@@ -37,20 +37,27 @@ def parse_discovery_service_request(self, url="", query=""):
3737 if part .query :
3838 qp = parse .parse_qs (part .query )
3939 if "returnIDParam" in dsr :
40- assert dsr ["returnIDParam" ] not in qp .keys ()
40+ if dsr ["returnIDParam" ] in qp .keys ():
41+ raise Exception (
42+ "returnIDParam value should not be in the query params"
43+ )
4144 else :
42- assert "entityID" not in qp .keys ()
45+ if "entityID" in qp .keys ():
46+ raise Exception ("entityID should not be in the query params" )
4347 else :
4448 # If metadata not used this is mandatory
4549 raise VerificationError ("Missing mandatory parameter 'return'" )
4650
4751 if "policy" not in dsr :
4852 dsr ["policy" ] = IDPDISC_POLICY
4953
50- try :
51- assert dsr ["isPassive" ] in ["true" , "false" ]
52- except KeyError :
53- pass
54+ is_passive = dsr .get ("isPassive" )
55+ if is_passive not in ["true" , "false" ]:
56+ raise ValueError (
57+ "Invalid value '{v}' for attribute '{attr}'" .format (
58+ v = is_passive , attr = "isPassive"
59+ )
60+ )
5461
5562 if "isPassive" in dsr and dsr ["isPassive" ] == "true" :
5663 dsr ["isPassive" ] = True
@@ -93,10 +100,6 @@ def verify_sp_in_metadata(self, entity_id):
93100
94101 def verify_return (self , entity_id , return_url ):
95102 for endp in self .metadata .discovery_response (entity_id ):
96- try :
97- assert return_url .startswith (endp ["location" ])
98- except AssertionError :
99- pass
100- else :
103+ if not return_url .startswith (endp ["location" ]):
101104 return True
102105 return False
0 commit comments