解决spring boot中使用拦截器导致swagger文档无法访问

目录

问题场景

解决方案


问题场景

我们的spring boot项目通常会使用接口文档管理依赖如knife4j(swagger3)

Spring Boot3整合knife4j(swagger3)_springboot3 knife4j-CSDN博客

通常也会使用拦截器来做登录鉴权、接口限流等操作,但是使用拦截器会导致swagger接口文档的访问被拦截,导致无法正常访问。

解决方案

这个问题解决起来非常简单,只需要配置一下拦截器放行路径,把swagger相关的所有资源访问都放行即可。

在项目的WebMVC配置类里面的拦截器追加排除路径:

java 复制代码
//拦截器公共排除路径设置
    private InterceptorRegistration configureInterceptorPublicExcludePathPatterns(InterceptorRegistry registry, HandlerInterceptor interceptor) {
        return registry.addInterceptor(interceptor)
                // 排除特定业务接口
                .excludePathPatterns("/captcha/**", "/test/**", "/", "/user/login/**","/function-system/**")
                //排除静态资源
                .excludePathPatterns("*.html", "/images/**")
                //排除swagger相关
                .excludePathPatterns("/doc.html","/webjars/**", "/swagger-resources", "/swagger-resources/**", "/v3/**", "/favicon.ico", "Mozilla/**");

    }

关键代码

java 复制代码
 //排除swagger相关
.excludePathPatterns("/doc.html","/webjars/**", "/swagger-resources", "/swagger-resources/**", "/v3/**", "/favicon.ico", "Mozilla/**");

放行后swagger文档就能正常访问了。

相关推荐
It's now18 分钟前
BeanRegistrar 的企业级应用场景及最佳实践
java·开发语言·spring
qq_5895681021 分钟前
mybatis-plus和springboot项目错误记录
spring boot·后端·mybatis
毕设源码-赖学姐24 分钟前
【开题答辩全过程】以 基于Java的小区物业管理系统APP的设计与实现为例,包含答辩的问题和答案
java·开发语言
会编程的林俊杰36 分钟前
Mapper解析
java·mybatis
狼爷39 分钟前
yyds,JDK 25 终结 import,可以像 Python 一样简单粗暴了
java
毕设源码-邱学长1 小时前
【开题答辩全过程】以 跑腿服务网站为例,包含答辩的问题和答案
java·eclipse
一 乐1 小时前
高校评教|基于SpringBoot+vue高校学生评教系统 (源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
自在极意功。1 小时前
手写Tomcat:深入理解Servlet容器工作原理
java·servlet·tomcat·socket
Boop_wu1 小时前
[Java EE] 字符流和字节流实例
java·开发语言·apache