1. ホーム
  2. spring-security

[解決済み] 非推奨のSpring Security JwtHelperの代替。

2022-02-11 06:13:56

質問

クラスを利用しています。 org.springframework.security.jwt.JwtHelper から org.springframework.security:spring-security-jwt:1.1.0.RELEASE JWTトークンのデコードのために、例えば、以下のようになります。

Jwt jwt = JwtHelper.decode(accessToken);
String claims = jwt.getClaims();

上記のクラスは非推奨であり、非推奨のコメントが指すのは Spring Security OAuth 2.0マイグレーションガイド .

このガイドでは JwtHelper .

クラスが見つかりました。 JwtDecoders を作成するものです。 JwtDecoder を新しい spring-security-oauth2 プロジェクトで使用されます。しかし JwtDecoders が必要です。 issuer を渡す必要があります。

トークンを検証したくないので、簡単な代替手段はありますか?そうでなければ、私は . でトークンをbase64デコードし、任意のJSONライブラリを使用してパースします。

どのように解決するのですか?

で使用される置換は 春のセキュリティ nimbus-jose-jwt . Spring Bootを使用しない場合は、バージョンを選択する必要があり、そうしないとSpring Bootが選択します。

<dependency>
    <groupId>com.nimbusds</groupId>
    <artifactId>nimbus-jose-jwt</artifactId>
</dependency>

こんな風に使えばいいんです。

import com.nimbusds.jwt.JWTParser;

....

JWT jwt = JWTParser.parse(accessToken)
Header = jwt.getHeader();
JWTClaimsSet jwtClaimSet = jwt.getJWTClaimsSet();