summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2018-12-06 10:03:10 +0100
committerIvan Kanakarakis <ivan.kanak@gmail.com>2018-12-06 10:03:10 +0100
commit19b21e218f529db7434fb309314e4377c3db3898 (patch)
tree1c1bf23ed33962bb64afd4d9561676a93902261d
parent2dce359b7aa0fdd70a08039c207ef55ba71385c9 (diff)
downloadpysaml2-19b21e218f529db7434fb309314e4377c3db3898.tar.gz
Rework status_ok structure
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
-rw-r--r--src/saml2/response.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/saml2/response.py b/src/saml2/response.py
index 6bfe4d7c..6d32e313 100644
--- a/src/saml2/response.py
+++ b/src/saml2/response.py
@@ -354,26 +354,29 @@ class StatusResponse(object):
return self._postamble()
def status_ok(self):
- if self.response.status:
- status = self.response.status
- logger.info("status: %s", status)
- if status.status_code.value != samlp.STATUS_SUCCESS:
- logger.info("Not successful operation: %s", status)
- if status.status_code.status_code:
- excep = STATUSCODE2EXCEPTION.get(
- status.status_code.status_code.value, StatusError)
- else:
- excep = StatusError
- if status.status_message:
- msg = status.status_message.text
- else:
- try:
- msg = status.status_code.status_code.value
- except Exception:
- msg = "Unknown error"
- raise excep(
- "%s from %s" % (msg, status.status_code.value,))
- return True
+ status = self.response.status
+ logger.info("status: %s", status)
+
+ if not status or status.status_code.value == samlp.STATUS_SUCCESS:
+ return True
+
+ err_code = (
+ status.status_code.status_code.value
+ if status.status_code.status_code
+ else None
+ )
+ err_msg = (
+ status.status_message.text
+ if status.status_message
+ else err_code or "Unknown error"
+ )
+ err_cls = STATUSCODE2EXCEPTION.get(err_code, StatusError)
+
+ msg = "Unsuccessful operation: {status}\n{msg} from {code}".format(
+ status=status, msg=err_msg, code=err_code
+ )
+ logger.info(msg)
+ raise err_cls(msg)
def issue_instant_ok(self):
""" Check that the response was issued at a reasonable time """