문제 발견
아래와 같이 로그인/회원가입 구현 중 JWT를 발급하기 위해 시크릿 키를 만들던 도중 발생하였다.
@RequiredArgsConstructor
@ConfigurationProperties(prefix = "midcon")
public class AppConfig {
private final String jwtKey;
public SecretKey getSecretKey() {
byte[] byteJwtKey = Decoders.BASE64.decode(this.jwtKey);
return Keys.hmacShaKeyFor(byteJwtKey);
}
}
분명 이 글을 쓰던 시점에서는 잘 됐으나 시크릿 키를 만드는 로직의 위치만 옮겼을 뿐인데 오류가 발생하였다.
문제 해결
결론부터 말하자면 예상 외로 라이브러리 버전 문제였다.
호돌맨님 인강을 보며 만들때는 문제가 없었지만 지금은 바뀐 조건이 많아서 뭐가 문제인지 확인하기 어렵다.
대충 생각 나는 원인은 아래 세 개 정도였다.
- 로직 위치를 바꾼게 문제인지
- 스프링부트 버전을 2.7대에서 3.2대로 올린게 문제인지
- 자바 버전을 11에서 21로 올린게 문제인지
위 조건으로 로그를 찍어보면서 원인을 찾아봤지만 실패했다.
그래서 에러 메시지를 검색해보았고, 한 stackoverflow 글을 발견했다.
위 글을 참고하여 jwt 라이브러리를 0.12.1 버전으로 올리니 해결되었다.
검색을 잘 하자...