jose4j を使用して JWT からネストされたクレームにアクセスできません。クレーム セットが次のような JWT があります。
{
"iss": "awesome.issuer",
"iat": 1300819370,
"exp": 1300819380,
"clm": "string claim",
"sub": "batman",
"context": {
"username": "mpdavis",
"firstName": "Michael",
"lastName": "Davis
}
}
クレーム内のネストされたクレームにアクセスしようとすると、問題が発生しますcontext
。を使用して、トップ レベルのクレームに簡単にアクセスできますgetClaimValue
。
private String qsh;
qsh = jwtClaims.getClaimValue("qsh", String.class);
ネストされたクレームを取得する場合、2 つのオプションがあるようです。
context
最初のオプションは、クレームを として返し、Map<String,Object>
各クレームをそのオブジェクトから引き出す方法を見つけることです。もう 1 つのオプションは、flattenClaims
すべてのクレームを にフラット化しMap<String,List<Object>>
、ネストされたクレームのマップから最初のオブジェクトを取得するために使用することです。
これらの JWT を付与するサービスがスキーマを大幅に変更する場合、これらのオプションのいずれも特に回復力がないように見えます。
より良い方法はありますか?