해결된 질문
작성
·
395
2
답변 3
1
필터는 동작하는게 맞습니다.
JwtFilter class 의 dofilter 메서드의 가장 마지막 라인에
filterChain.doFilter(servletRequest, servletResponse);
를 안하신듯 합니다.
resolveToken 메서드에서 null을 반환하고 doFilter에서도 jwt 변수에는 null이 들어있기때문에 로그 메시지는 그렇게 나오는게 맞는듯 합니다.
0
안녕하세요 🙂
Spring Boot 3.4.0 (SNAPSHOT) 버전에 맞춰 샘플 코드를 업데이트했습니다.
아래 링크에서 Java와 Kotlin 버전의 최신 샘플 코드를 확인하실 수 있으니 참고 부탁드립니다.
Java : https://github.com/SilverNine/spring-boot-jwt-tutorial
Kotlin : https://github.com/SilverNine/spring-boot-jwt-tutorial-kotlin
0
서버로 요청을 보내면 서블릿으로 전달되기 전에 필터를 거치게 됩니다.
permitAll() 로 해당 경로를 접근할수있는 문을 열어두었고, 해당 경로로 요청을 보내면 Security FilterChain 에 의해 JwtFilter 가 발생됩니다 그래서 유효한 JWT 토큰이 없다고 로그가 발생하는 이유로 봅니다.
저의 미숙한 지식으로 해결책을 제시하면
로그인할 때 해당 필터링(로그가 안찍히도록)이 적용하지 않게 하고싶다면 JwtFilter 코드내부에
requestURI 변수에 담긴 값을 조건문을 통해 걸러내는 작업을 하면 될것같습니다.