ふくしま

ソフトウェアエンジニア

JWTをただただデコードしてクレームを読み取るためだけに JWT 系のライブラリを使いたい時あるよね

やりたいこと

JWTをただただデコードしてクレームを読み取りたい。 しかし、JWT 系のライブラリであれば、JWT トークンのデコードの際に検証が必須の物が多い。 例えば、jjwt とかだと、

you should always discard JWTs that don't match an expected signature

と README にあるように、以下のように公開鍵をセットしてからデコードする必要がある。

Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJws(jws).getBody().getSubject()

でも、Java のコードでただ中身をデコードして確認したい時は、わざわざ公開鍵をセットするのは面倒である。

解決策

こういう時は、無署名の JWT トークンにしてしまえば良い。 つまり、JWT トークンを以下のように変更する。 aaaa.bbbb.cccc -> aaaa.bbbb.