Spring BootアプリケーションでJWTを作成する方法


まず、Spring Bootプロジェクトをセットアップする必要があります。MavenやGradleなどの依存関係管理ツールを使用して、以下の依存関係を追加します。

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>

依存関係を追加したら、JWTを作成するためのコードを実装できます。以下に、Spring Securityと組み合わせてJWTを作成する例を示します。

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.security.core.userdetails.User;
import java.util.Date;
public class JwtUtil {
    private static final String SECRET_KEY = "yourSecretKey";
    private static final long EXPIRATION_TIME = 86400000; // 24 hours
    public static String generateToken(User userDetails) {
        Date now = new Date();
        Date expiryDate = new Date(now.getTime() + EXPIRATION_TIME);
        return Jwts.builder()
                .setSubject(userDetails.getUsername())
                .setIssuedAt(now)
                .setExpiration(expiryDate)
                .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
                .compact();
    }
}

上記の例では、generateTokenメソッドを使用してJWTを作成しています。Userオブジェクトを受け取り、その情報を使用してトークンを生成します。SECRET_KEYは、トークンの署名に使用される秘密キーです。EXPIRATION_TIMEは、トークンの有効期限を設定します。

この例では、HS512署名アルゴリズムを使用していますが、必要に応じて他のアルゴリズムを選択できます。

以上が、Spring BootアプリケーションでJWTを作成する方法の例です。これをベースにして、さまざまなセキュリティ関連のシナリオに応じてカスタマイズすることができます。