This is an automated email from the ASF dual-hosted git repository. rnewson pushed a commit to branch jwtf-error-messages in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 14c5c20ddfd3d354c42ed4d1baba0ad2ce25b382 Author: Robert Newson <[email protected]> AuthorDate: Tue Jul 7 19:35:25 2026 +0100 improve JWT error messages --- src/jwtf/src/jwtf.erl | 8 ++++---- src/jwtf/test/jwtf_tests.erl | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/jwtf/src/jwtf.erl b/src/jwtf/src/jwtf.erl index 4c4a3e8ba..98cafebb4 100644 --- a/src/jwtf/src/jwtf.erl +++ b/src/jwtf/src/jwtf.erl @@ -297,7 +297,7 @@ public_key_verify(Algorithm, Message, Signature, PublicKey) -> true -> ok; false -> - throw({bad_request, <<"Bad signature">>}) + throw({bad_request, <<"Bad signature in authentication token">>}) end. hmac_verify(Algorithm, Message, HMAC, SecretKey) -> @@ -305,7 +305,7 @@ hmac_verify(Algorithm, Message, HMAC, SecretKey) -> HMAC -> ok; _ -> - throw({bad_request, <<"Bad HMAC">>}) + throw({bad_request, <<"Bad HMAC in authentication token">>}) end. jose_to_der(Signature) -> @@ -325,7 +325,7 @@ rs_len(<<"ES", SizeBin/binary>>) -> split(EncodedToken) -> case binary:split(EncodedToken, <<$.>>, [global]) of [_, _, _] = Split -> Split; - _ -> throw({bad_request, <<"Malformed token">>}) + _ -> throw({bad_request, <<"Malformed authentication token">>}) end. decode_passthrough(B64UrlEncoded) -> @@ -341,7 +341,7 @@ decode_b64url_json(B64UrlEncoded) -> end catch _:_ -> - throw({bad_request, <<"Malformed token">>}) + throw({bad_request, <<"Malformed authentication token">>}) end. props({Props}) -> diff --git a/src/jwtf/test/jwtf_tests.erl b/src/jwtf/test/jwtf_tests.erl index 40b190f52..51991ce28 100644 --- a/src/jwtf/test/jwtf_tests.erl +++ b/src/jwtf/test/jwtf_tests.erl @@ -49,28 +49,28 @@ jwt_io_ec_pubkey() -> b64_badarg_test() -> Encoded = <<"0.0.0">>, ?assertEqual( - {error, {bad_request, <<"Malformed token">>}}, + {error, {bad_request, <<"Malformed authentication token">>}}, jwtf:decode(Encoded, [], nil) ). b64_bad_block_test() -> Encoded = <<" aGVsbG8. aGVsbG8. aGVsbG8">>, ?assertEqual( - {error, {bad_request, <<"Malformed token">>}}, + {error, {bad_request, <<"Malformed authentication token">>}}, jwtf:decode(Encoded, [], nil) ). invalid_json_test() -> Encoded = <<"fQ.fQ.fQ">>, ?assertEqual( - {error, {bad_request, <<"Malformed token">>}}, + {error, {bad_request, <<"Malformed authentication token">>}}, jwtf:decode(Encoded, [], nil) ). truncated_json_test() -> Encoded = <<"ew.ew.ew">>, ?assertEqual( - {error, {bad_request, <<"Malformed token">>}}, + {error, {bad_request, <<"Malformed authentication token">>}}, jwtf:decode(Encoded, [], nil) ). @@ -190,7 +190,7 @@ bad_rs256_sig_test() -> ), KS = fun(<<"RS256">>, undefined) -> jwt_io_rsa_pubkey() end, ?assertEqual( - {error, {bad_request, <<"Bad signature">>}}, + {error, {bad_request, <<"Bad signature in authentication token">>}}, jwtf:decode(Encoded, [], KS) ). @@ -201,13 +201,13 @@ bad_hs256_sig_test() -> ), KS = fun(<<"HS256">>, undefined) -> <<"bad">> end, ?assertEqual( - {error, {bad_request, <<"Bad HMAC">>}}, + {error, {bad_request, <<"Bad HMAC in authentication token">>}}, jwtf:decode(Encoded, [], KS) ). malformed_token_test() -> ?assertEqual( - {error, {bad_request, <<"Malformed token">>}}, + {error, {bad_request, <<"Malformed authentication token">>}}, jwtf:decode(<<"a.b.c.d">>, [], nil) ).
