개발/Spring MVC

Spring Interceptor 경로에서 Swagger 경로 제거 시 발생 오류

Debin 2022. 7. 8.
반응형

UMC 동아리에서  앱을 만드는 팀 프로젝트를 진행 중인데 한 가지 오류가 발생했다.

바로 JWT를 사용해서 로그인을 진행할 때 스프링 인터셉터를 사용 중인데 스웨거 경로를 exclude하자 오류가 발생했다.

오류 화면

파파고로 내용을 해석하면 아래와 같았다.

 

"기본 URL을 유추할 수 없습니다.

이는 동적 서블릿 등록을 사용하거나 API가 API 게이트웨이 뒤에 있을 때 흔히 발생합니다.

기본 URL은 모든 스웨거 리소스가 제공되는 루트입니다.

예를 들어 http://example.org/api/v2/api-docs에서 api를 사용할 수 있는 경우 기본 URL은 http://example.org/api/입니다.

위치를 수동으로 입력하십시오."

 

처음 파파고를 돌려보고 '뭔 소리지..?'라는 생각이 들었다.

기존에 스웨거를 경로에서 제거하자 오류가 발생한 코드는 다음과 같다.

@Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        //인터셉터 등록
        registry.addInterceptor(new AuthenticationInterceptor(jwtService,objectMapper))
                .order(0)
                .addPathPatterns("/**")
                .excludePathPatterns("/swagger-ui/**");

    }

다음과 같은 경로를 추가하여 문제를 해결했다.

@Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        //인터셉터 등록
        registry.addInterceptor(new AuthenticationInterceptor(jwtService,objectMapper))
                .order(0)
                .addPathPatterns("/**")
                .excludePathPatterns("/swagger-ui/**", "/swagger-resources/**", "/v2/api-docs");

    }

다음에 프로젝트하면서도 같은 오류가 발생할 것 같아서 기록으로 남긴다!

문제를 해결해서 다행이다.

반응형

댓글