SpringBoot使用拦截器和swagger(knife4j)配置

Posted 星丶空LTL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot使用拦截器和swagger(knife4j)配置相关的知识,希望对你有一定的参考价值。

由于拦截器会把所有请求都拦截下来,而swagger(knife4j)的接口页面也会被拦截,所以需要进行排除拦截设置。

拦截器配置代码

@Configuration
public class InterceptorConfig implements WebMvcConfigurer 

    @Override   // 配置拦截器
    public void addInterceptors(InterceptorRegistry registry) 
        // 对swagger的请求不进行拦截
        String[] excludePatterns = new String[]"/swagger-resources/**", "/webjars/**", "/v2/**", "/swagger-ui.html/**",
                "/api", "/api-docs", "/api-docs/**", "/doc.html/**";
        registry.addInterceptor(new MyInterceptor())
                // 拦截所有请求
                .addPathPatterns("/**")
                // 排除指定请求
                .excludePathPatterns(excludePatterns);
    

PS:经过测试knife4j的doc.html页面可以正常使用,不会被拦截器拦截。
但swagger的swagger-ui.html会被拦截,希望有大佬看到能指正一下。

以上是关于SpringBoot使用拦截器和swagger(knife4j)配置的主要内容,如果未能解决你的问题,请参考以下文章

springboot swagger api管理

springboot2 集成 swagger3.0 使用了拦截器 出现报错 end of the stream or a document separator is expected

Springboot登录拦截器

springboot整合shiro框架详解

使用swagger遇到的问题

SpringBoot | 第十章:Swagger2的集成和使用