summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/saml2/client.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/saml2/client.py b/src/saml2/client.py
index ee773d3b..d4ab2eec 100644
--- a/src/saml2/client.py
+++ b/src/saml2/client.py
@@ -700,16 +700,17 @@ class Saml2Client(Base):
BINDING_HTTP_REDIRECT: [BINDING_HTTP_REDIRECT, BINDING_HTTP_POST],
}.get(binding, [])
- if sign is None:
- sign = self.logout_responses_signed
-
for response_binding in response_bindings:
+ sign = sign if sign is not None else self.logout_responses_signed
+ sign_redirect = sign and response_binding == BINDING_HTTP_REDIRECT
+ sign_post = sign and not sign_redirect
+
try:
response = self.create_logout_response(
_req.message,
bindings=[response_binding],
status=status,
- sign=sign,
+ sign=sign_post,
sign_alg=sign_alg,
digest_alg=digest_alg,
)
@@ -721,7 +722,7 @@ class Saml2Client(Base):
rinfo["destination"],
relay_state,
response=True,
- sign=sign,
+ sign=sign_redirect,
sigalg=sign_alg,
)
except Exception: