summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Palard <julien@palard.fr>2020-05-15 03:44:22 +0200
committerGitHub <noreply@github.com>2020-05-15 07:44:22 +0600
commit8556a1590532d58c540256ae1824688ec6c7abe2 (patch)
treec7fa9390b132580dfb6dde7dae7d034174731224
parent008490a85932415ec14ab7d61c64216ddaef75fc (diff)
downloadpyjwt-8556a1590532d58c540256ae1824688ec6c7abe2.tar.gz
Enhance tracebacks. (#477)
-rw-r--r--jwt/api_jws.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/jwt/api_jws.py b/jwt/api_jws.py
index 9504c9f..c23d7c1 100644
--- a/jwt/api_jws.py
+++ b/jwt/api_jws.py
@@ -188,31 +188,31 @@ class PyJWS(object):
try:
signing_input, crypto_segment = jwt.rsplit(b".", 1)
header_segment, payload_segment = signing_input.split(b".", 1)
- except ValueError:
- raise DecodeError("Not enough segments")
+ except ValueError as err:
+ raise DecodeError("Not enough segments") from err
try:
header_data = base64url_decode(header_segment)
- except (TypeError, binascii.Error):
- raise DecodeError("Invalid header padding")
+ except (TypeError, binascii.Error) as err:
+ raise DecodeError("Invalid header padding") from err
try:
header = json.loads(header_data.decode("utf-8"))
except ValueError as e:
- raise DecodeError("Invalid header string: %s" % e)
+ raise DecodeError("Invalid header string: %s" % e) from e
if not isinstance(header, Mapping):
raise DecodeError("Invalid header string: must be a json object")
try:
payload = base64url_decode(payload_segment)
- except (TypeError, binascii.Error):
- raise DecodeError("Invalid payload padding")
+ except (TypeError, binascii.Error) as err:
+ raise DecodeError("Invalid payload padding") from err
try:
signature = base64url_decode(crypto_segment)
- except (TypeError, binascii.Error):
- raise DecodeError("Invalid crypto padding")
+ except (TypeError, binascii.Error) as err:
+ raise DecodeError("Invalid crypto padding") from err
return (payload, signing_input, header, signature)