summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/saml2/client_base.py35
1 files changed, 14 insertions, 21 deletions
diff --git a/src/saml2/client_base.py b/src/saml2/client_base.py
index 15e3b0ec..f90c4378 100644
--- a/src/saml2/client_base.py
+++ b/src/saml2/client_base.py
@@ -913,28 +913,21 @@ class Base(Entity):
:return: A URL
"""
- args = {"entityID": entity_id}
- for key in ["policy", "returnIDParam"]:
- try:
- args[key] = kwargs[key]
- except KeyError:
- pass
-
- try:
- args["return"] = kwargs["return_url"]
- except KeyError:
- try:
- args["return"] = kwargs["return"]
- except KeyError:
- pass
-
- if "isPassive" in kwargs:
- if kwargs["isPassive"]:
- args["isPassive"] = "true"
- else:
- args["isPassive"] = "false"
+ args = {
+ "entityID": entity_id,
+ "policy": kwargs.get("policy"),
+ "returnIDParam": kwargs.get("returnIDParam"),
+ "return": kwargs.get("return_url") or kwargs.get("return"),
+ "isPassive": (
+ None
+ if "isPassive" not in kwargs.keys()
+ else "true"
+ if kwargs.get("isPassive")
+ else "false"
+ ),
+ }
- params = urlencode(args)
+ params = urlencode({k: v for k, v in args.items() if v})
return "%s?%s" % (url, params)
@staticmethod