작성
·
74
0
JwtTokenProvider 에서 생성자를 만들던 도중 해당 오류로 문제가 발생해서 token 발급에 막혀 문의드립니다.
해당 내용상 @Value 사용이 안되는 것으로 보이는데 혹시 원인을 알 수 있을까요?
답변 2
0
안녕하세요~! Value어노테이션을 종류가 여러개가 있는데 혹시 lombok의 value를 import한것은 아닌지 확인 부탁드립니다. 아래 내용으로 import가 되어야 합니다.
import org.springframework.beans.factory.annotation.Value;
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 설정:
이와 유사한 문제에 대한 과거 질문과 답변으로 더 많은 힌트를 얻을 수 있습니다:
- JWT 및 Spring Security 설정에 관한 질문 - JWT 관련 설정 사항과 해결 방법에 관한 유용한 정보가 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
확인 감사합니다!
추가로 해당내용 확인하고 재실행 해봤는데
Key 쪽도 문제가 있더라구요..
해당 내용으로 import 한게 잘못되었을까요?