springboot整合swagger之拦截器配置

springboot整合swagger之拦截器配置

参考网址:

参考自己总结的springboot整合swagger2排除拦截器配置

https://blog.csdn.net/shaoming314/article/details/112814469

参考别人分别配置了swagger2和swagger3排除拦截器配置

https://blog.csdn.net/Ju3tinZz/article/details/115762426?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162394059716780357236649%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=162394059716780357236649&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-1-115762426.first_rank_v2_pc_rank_v29&utm_term=swagger3%E6%8E%92%E9%99%A4%E6%8B%A6%E6%88%AA&spm=1018.2226.3001.4187

情景再现

本项目使用了jwt整合注册登录,如果直接访问jwt会返回错误的json信息

image-20210617234017564

说明:

swagger3的访问路径为:ip:端口号/swagger-ui

knife4j的访问路径为:ip:端口号/doc.html

我这个项目整合了swagger3+knife4j

具体配置

swagger3+knife4j


import com.yunkai.interceptor.JwtInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    //添加拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //定义排除swagger访问的路径配置
        /**
         * 说明:此项目整合了swagger3+knife4j
         * `knife4j的功能比swagger3功能更加强大,建议使用
         * 但是`knife4j是基于swagger,所以整合`knife4j,前提是整合好swagger
         * 注意事项:
         * 排除路径时候一定要排除 /doc.html
         * 因为这是`knife4j在线接口文档的在线访问路径(ip:端口号/doc.html)
         */
        String[] swaggerExcludes=new String[]{"/swagger**/**","/doc.html","/swagger-resources/**","/webjars/**","/v3/**"};
        registry.addInterceptor(new JwtInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/user/login","/user/register")
                //添加一个测试不需要测试和登录的接口,用户测试请求
                .excludePathPatterns("/user/test/nologin")
                .excludePathPatterns("/index.html","/","/user/login","/css/*","/js/**","/img/**")
                .excludePathPatterns(swaggerExcludes);
    }
}

swagger2

// 请求路径排除
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor()
            .addPathPatterns("/**")
            .excludePathPatterns("/swagger-resources/**")
            .excludePathPatterns("/webjars/**")
            .excludePathPatterns("/v2/**")
            .excludePathPatterns("/swagger-ui.html/**");
        super.addInterceptors(registry);
    }

总结

-ui.html/**");
super.addInterceptors(registry);
}


## 总结

swagger配置这是项目的准备工作,我们要严格配置好
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值