diff options
author | Julien Palard <julien@palard.fr> | 2020-05-15 03:44:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-15 07:44:22 +0600 |
commit | 8556a1590532d58c540256ae1824688ec6c7abe2 (patch) | |
tree | c7fa9390b132580dfb6dde7dae7d034174731224 | |
parent | 008490a85932415ec14ab7d61c64216ddaef75fc (diff) | |
download | pyjwt-8556a1590532d58c540256ae1824688ec6c7abe2.tar.gz |
Enhance tracebacks. (#477)
-rw-r--r-- | jwt/api_jws.py | 18 |
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) |