Skip to content

Commit 416687a

Browse files
committed
Tolerate invalid typ claim when not required
NB The test causes an error at sig verification stage which comes after claim verification. closes: #5838
1 parent 8dfa59d commit 416687a

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

src/jwtf/src/jwtf.erl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ validate_typ(Props, Checks) ->
168168
Required = prop(typ, Checks),
169169
TYP = prop(<<"typ">>, Props),
170170
case {Required, TYP} of
171-
{undefined, undefined} ->
171+
% ignore unrequired check
172+
{undefined, _} ->
172173
ok;
173174
{true, undefined} ->
174175
throw({bad_request, <<"Missing typ header parameter">>});

src/jwtf/test/jwtf_tests.erl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ invalid_typ_test() ->
8888
jwtf:decode(Encoded, [typ], nil)
8989
).
9090

91+
ignored_typ_test() ->
92+
Encoded = encode({[{<<"typ">>, <<"NOPE">>}]}, {[]}),
93+
Ref = make_ref(),
94+
KS = fun(_, _) -> throw(Ref) end,
95+
?assertEqual(
96+
{error, Ref},
97+
jwtf:decode(Encoded, [], KS)
98+
).
99+
91100
missing_alg_test() ->
92101
Encoded = encode({[]}, []),
93102
?assertEqual(

0 commit comments

Comments
 (0)