SpringBoot 설정 차단기 가 swagger 를 무효 화 합 니 다.

8140 단어 SpringBootSpringBoot
질문 배경:
Springboot 에서 차단 기 를 사용 하면 Swagger 에 접근 할 수 없습니다.
원인.
차단기 가 모든 요청 을 차단 하여 swagger 도 차단 되 었 습 니 다. 감정 권 을 진행 할 때 특정한 인자 나 요청 헤더 정 보 를 입력 해 야 할 수도 있 습 니 다. 그러면 우 리 는 swagger 를 정상적으로 통과 할 수 없습니다.
해결 하 다.
정적 자원 처리 기 를 설정 하고 swagger 의 접근 경 로 를 제외 하면 문 제 를 해결 할 수 있 습 니 다.
import com.eechain.sso.interceptor.AuthInterceptor;
import com.eechain.sso.interceptor.ResponseInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class SpringConfig implements WebMvcConfigurer {

  private AuthInterceptor authInterceptor; 
  @Autowired
  public void setAuthInterceptor(AuthInterceptor authInterceptor) {
    this.authInterceptor = authInterceptor;
  }

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry
        .addInterceptor(authInterceptor)
        .addPathPatterns("/**")
        .excludePathPatterns("/account/**")
        //     
        .excludePathPatterns("/js/**", "/css/**", "/images/**", "/lib/**",
            "/fonts/**")
        // swagger-ui
        .excludePathPatterns("/swagger-resources/**", "/webjars/**",
            "/v2/**", "/swagger-ui.html/**");
    registry.addInterceptor(responseInterceptor).addPathPatterns("/**");
  }

  //     
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
        .addResourceLocations("classpath:/META-INF/resources/");
    registry.addResourceHandler("/webjars/**")
        .addResourceLocations("classpath:/META-INF/resources/webjars/");

  }
}

좋은 웹페이지 즐겨찾기