728x90
반응형
JWT 검증 메소드
*JWE
*자세한 설명 생략
/**
* JWT VERIFY
*
* @param HttpServletRequest
* @param resVO
* @return CmmResVO
*/
public CmmResVO JWTVerify(HttpServletRequest req, CmmResVO resVO) {
try {
final String jwt = req.getHeader("Authorization");
if(CmmUtile.nullCheck(jwt)) { return resVO.ERR_9005(); }
/** JWE RSA KEYPAIR */
final KeyFactory keyFactory = KeyFactory.getInstance("RSA");
/* Decryption Key */
final PKCS8EncodedKeySpec pKCS8EncodedKeySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKey));
final RSAPrivateKey rsaPrivateKey = (RSAPrivateKey) keyFactory.generatePrivate(pKCS8EncodedKeySpec);
final RSADecrypter rsaDecrypter = new RSADecrypter(rsaPrivateKey);
/** Parse */
final EncryptedJWT decryptedJWE = EncryptedJWT.parse(jwt);
/* Decryption */
decryptedJWE.decrypt(rsaDecrypter);
JWTClaimsSet claimsSet = decryptedJWE.getJWTClaimsSet();
/** 토큰 만기 체크 */
// -1 : 현재날짜 이전, 1 : 현재날짜 이후, 0 : 현재날짜와 같음
Integer expireCheck = claimsSet.getExpirationTime().compareTo(new Date());
if("-1".equals(expireCheck.toString())){ return resVO.ERR_9006(); }
} catch (Exception e) {
resVO.ERR_9005();
log.error("JWTVerify ERR Message :", e);
}
return resVO;
}
▷ 관련 글
728x90
728x90
'▶ Back-End > Java' 카테고리의 다른 글
로그파일 생성과 관리(logback-spring.xml) (2) | 2023.10.17 |
---|---|
요청 필드 값 공통 체크 (0) | 2023.10.12 |
SpringBoot Security Login 기능 추가 (4) | 2023.09.26 |
Objcet to String (0) | 2023.09.21 |
@Value 사용법 (0) | 2023.09.21 |
댓글