postman이나 cmd로 api 자체적으로 요청함에 있어서는 문제가 발생하지 않았고 문제는 docs 쪽이나 h2 쪽을 접근할 때 발생했다. 그 이유는 화면을 뿌리기 때문이였는데. 화면을 뿌리면서 필요한 요청이
/favicon.ico
해당 url로 호출이 생기기 때문에 이 url로 interceptor를 1번 실행하게 된다. 그 후 당연하게도 404에러가 터지고 에러가 터졌기 때문에 /error
url로 한번 더 호출이 일어나게 되어 docs나 h2에 접근할 때마다 2번의 Token emtpy 에러를 서버에 찍어내게 되었다...
@Configuration
public class WebMvcConfig implements WebMvcConfigurer{
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginInterceptor())
.order(1)
.addPathPatterns("/**")
.excludePathPatterns(
...
"/favicon.ico",
"/error",
"/"
);
}
}
해결 방법은 아주 간단한데. 해당 url 또한 interceptor에서 제외되도록 설정해주면 이제 api 에서 정적 페이지로 접근하더라도 에러가 발생하지 않는다!... 만약 css가 들어간다면 제외되는 url에 css도 넣어줘야겠지!?
어떻게 보면 당연한 설정이였지만 api만 생각하고 화면이 그려질거란 생각을 하지 않아서 생겼던 에러였다. 앞으로는 이런 에러를 마주했을 때 이 과정을 생각해서 더 빠르게 해결할 수 있길 👏