728x90
반응형
JWT 생성 메소드
*JWE
*자세한 설명 생략
/**
* JWT CREATE
*
* @return String
*/
public String JWTCreate() {
String jwt = "";
try {
/** JWE RSA KEYPAIR */
final KeyFactory keyFactory = KeyFactory.getInstance("RSA");
/* Encryption Key */
final X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(Base64.getDecoder().decode(publicKey));
final RSAPublicKey rsaPublicKey = (RSAPublicKey) keyFactory.generatePublic(x509EncodedKeySpec);
final RSAEncrypter encryptionKey = new RSAEncrypter(rsaPublicKey);
/** JWE Header */
JWEHeader header = new JWEHeader(JWEAlgorithm.RSA_OAEP_256, EncryptionMethod.A256CBC_HS512);
/** JWE Payload (registered claim) */
JWTClaimsSet payload = new JWTClaimsSet.Builder()
// .issuer("토큰 발급자")
// .subject("토큰 제목")
// .audience("토큰 대상자")
.expirationTime(new Date(new Date().getTime() + 1000 * 60 * 60)) // 토큰의 만료시간(1시간)
.issueTime(new Date()) // 토큰이 발급된 시간
.jwtID(UUID.randomUUID().toString()) // JWT의 고유 식별자
.build();
/** JWE Claim Encrypt */
final EncryptedJWT encryptedJWE = new EncryptedJWT(header, payload);
encryptedJWE.encrypt(encryptionKey);
jwt = encryptedJWE.serialize();
} catch (Exception e) {
log.error("JWTCreate ERR Message :", e);
}
return jwt;
}
▷ 관련 글
728x90
728x90
'▶ Back-End > Java' 카테고리의 다른 글
요청 필드 값 공통 체크 (0) | 2023.10.12 |
---|---|
VERIFY JWT(nimbus) (0) | 2023.10.12 |
SpringBoot Security Login 기능 추가 (4) | 2023.09.26 |
Objcet to String (0) | 2023.09.21 |
@Value 사용법 (0) | 2023.09.21 |
댓글