미니 프로젝트를 진행하면서, 시큐리티와 jwt를 적용했다. 근데 위 사진 처럼 1번 에러가 30초에 한 번씩 무한루프처럼 로그에 계속 찍히는 상태가 발생한 것이다. 해당 사진은 디버그 할 때, 찍은 거라 저렇게 나왔지만 초반에는 1번만 계속 올라왔다.
로드 밸런서는 등록된 대상으로 요청을 주기적으로 전송해 상태(Healthy) 체크를 진행한다. 그래서 대상 그룹의 정해진 디폴트 경로로 요청을 받아 상태 코드를 응답을 보내주어야 한다. 이를 처리해주지 않았던 것이 근본적인 문제였다.
(대상 그룹의 정보 및 health check 속성)
대상 그룹의 경로와 상태코드는 변경 가능
IntelliJ 디버그 모드
및 @EnableWebSecurity
의 debug = true
옵션을 추가해서 Security의 모든 JwtFilter
로그 추적로드밸런서
의 대상 그룹에 대한 상태(healthy) 확인 요청이 발생한다는 것을 파악(2번 이슈 - 디버그, 로깅으로 알게 됨)JwtFilter
를 통과하지 못 하여, 1번 에러가 계속해서 발생하는 것을 파악따라서, security의 JwtFilter 에서 해당 요청의 uri는 토큰 검사와 다른 인증 과정 없이 컨트롤러에 도착할 수 있게 하였다. 그 후 아래 사진과 같이 요청 받을 controller를 추가해 요청을 받고 응답해주어 문제를 해결할 수 있다.
전체적인 코드는 아래 깃허브에서 확인할 수 있습니다.