인프런 커뮤니티 질문&답변
JwtTokenProvider 작성중 오류 발생으로 문의드립니다.
작성
·
82
0

JwtTokenProvider 에서 생성자를 만들던 도중 해당 오류로 문제가 발생해서 token 발급에 막혀 문의드립니다.
해당 내용상 @Value 사용이 안되는 것으로 보이는데 혹시 원인을 알 수 있을까요?
답변 2
0
bradkim
지식공유자
안녕하세요~! Value어노테이션을 종류가 여러개가 있는데 혹시 lombok의 value를 import한것은 아닌지 확인 부탁드립니다. 아래 내용으로 import가 되어야 합니다.
import org.springframework.beans.factory.annotation.Value;bradkim
지식공유자
public JwtTokenProvider(@Value("${jwt.secretKey}") String secretKey,
@Value("${jwt.expiration}") int expiration) {
this.secretKey = secretKey;
this.expiration = expiration;
// Base64로 인코딩된 키를 디코딩한 후 SECRET_KEY 로 변환
// JJWT (io.jsonwebtoken): 최신 버전에서 다음과 같은 변경이 적용
this.SECRET_KEY = new SecretKeySpec(
java.util.Base64.getDecoder().decode(secretKey),
SignatureAlgorithm.HS512.getJcaName()
);
}
0
안녕하세요, 인프런 AI 인턴입니다. 손동연님.
@Value 어노테이션을 사용하면서 발생하는 오류에 대해 문의 주셨네요. 질문 내용을 분석하였을 때, @Value 어노테이션이 정확히 작동하지 않고 있다는 점에서 문제가 발생한 것으로 보입니다. 아래는 이 문제를 해결할 수 있는 몇 가지 점검 사항입니다:
프로젝트 의존성 확인:
@Value어노테이션은 Spring 프레임워크에서 제공하므로, Spring 관련 의존성이 프로젝트에 제대로 포함되어 있는지 확인해 보세요. 일반적으로spring-context모듈이 필요한데,pom.xml또는build.gradle파일에서 관련 설정이 누락되지 않았는지 점검합니다.
설정 파일 확인:
application.properties또는application.yml에 정의된 속성들이 올바르게 설정되어 있는지 확인합니다. 예를 들어,jwt.secret과jwt.expiration의 값이 제대로 정의되어 있는지 확인하세요.
yml파일의 경우, 들여쓰기와 형식에 주의해야 합니다. 이러한 설정 파일은 정확한 형식이 필요하기 때문에 실수가 발생하기 쉽습니다.
어노테이션 사용법 확인:
@Value어노테이션이 사전 컴파일 환경에서 작동 안 할 수 있습니다. 구현 클래스가 스프링 컨텍스트에 의해 관리되는지(@Component,@Service,@Repository등을 사용하여 스프링 Bean 등록) 확인해 보세요.
IntelliJ 등 IDE 설정:
- 사용 중인 IDE에서 설정 파일이 인식되지 않는 경우가 있습니다. 이러한 경우, 프로젝트 구조 리프레시나 캐시 정리를 수행해 보세요.
- 사용 중인 IDE에서 설정 파일이 인식되지 않는 경우가 있습니다. 이러한 경우, 프로젝트 구조 리프레시나 캐시 정리를 수행해 보세요.
이와 유사한 문제에 대한 과거 질문과 답변으로 더 많은 힌트를 얻을 수 있습니다:
- JWT 및 Spring Security 설정에 관한 질문 - JWT 관련 설정 사항과 해결 방법에 관한 유용한 정보가 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






확인 감사합니다!
추가로 해당내용 확인하고 재실행 해봤는데
Key 쪽도 문제가 있더라구요..
해당 내용으로 import 한게 잘못되었을까요?