jose4jを使用してJWTからネストされた要求にアクセスする際に問題があります。私がアクセスしcontext
請求内側にネストされた特許請求の範囲しようとしたとき、私は問題に実行していますjose4jでJWTのネストされた要求にアクセスする
{
"iss": "awesome.issuer",
"iat": 1300819370,
"exp": 1300819380,
"clm": "string claim",
"sub": "batman",
"context": {
"username": "mpdavis",
"firstName": "Michael",
"lastName": "Davis
}
}
:私は、その請求のセットのようになりますJWTを持っています。 getClaimValue
で簡単にトップレベルの申し立てにアクセスできます。
private String qsh;
qsh = jwtClaims.getClaimValue("qsh", String.class);
ネストされた主張を取得する場合は、2つのオプションがあるようです。
最初の選択肢はcontext
クレームをMap<String,Object>
として返し、そのオブジェクトから各クレームを引き出す方法を見つけることです。もう1つの選択肢は、flattenClaims
を使用してすべてのクレームをMap<String,List<Object>>
にフラット化し、ネストされたクレームのマップから最初のオブジェクトを取り除くことです。
これらのオプションのいずれも、これらのJWTを許可するサービスがスキーマを非常に変更する場合、特に回復力がないようです。
良い方法がありますか?