From ec10b5b6d71b074deae9773e4d97bae33d6a111b Mon Sep 17 00:00:00 2001 From: Stephen von Takach Date: Wed, 18 Dec 2019 08:09:15 +1100 Subject: [PATCH] fix: provide an explicit error for an invalid payload also provide better tracing by setting the caused by error --- shard.yml | 2 +- src/jwt.cr | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/shard.yml b/shard.yml index c927365..9be5ac1 100644 --- a/shard.yml +++ b/shard.yml @@ -1,5 +1,5 @@ name: jwt -version: 1.3.0 +version: 1.3.1 authors: - Potapov Sergey diff --git a/src/jwt.cr b/src/jwt.cr index 833d437..0974cf6 100644 --- a/src/jwt.cr +++ b/src/jwt.cr @@ -80,10 +80,12 @@ module JWT end {payload, header} - rescue Base64::Error - raise DecodeError.new("Invalid Base64") - rescue JSON::ParseException - raise DecodeError.new("Invalid JSON") + rescue error : Base64::Error + raise DecodeError.new("Invalid Base64", error) + rescue error : JSON::ParseException + raise DecodeError.new("Invalid JSON", error) + rescue error : TypeCastError + raise DecodeError.new("Invalid JWT payload", error) end def encode_header(algorithm : Algorithm, **keys) : String