解决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文档就能正常访问了。

相关推荐
现任明教教主~25 分钟前
Thinkphp站群蜘蛛池SaaS系统YanyvSEO含多用户/积分/六大引擎计费/易支付对接
java·开发语言·spring
一条破秋裤1 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
布吉岛的石头1 小时前
Java 程序员第 49 阶段5:BERT 预训练目标 MLM+NSP 的工程含义
java·人工智能·深度学习·bert·transformer
摇滚侠2 小时前
《On Java 中文版 基础卷》阅读笔记 对象无处不在 03
java·笔记·python
二十雨辰2 小时前
[学成在线]-01项目背景
java
弈栈录3 小时前
Java AI 应用的异步化与高并发设计
java·后端·架构
落魄实习生4 小时前
Agent Scope Java 2.x 系列【2】 ReActAgent
java·开发语言
艸肅4 小时前
Ubuntu 安装 JDK (含手动安装)
java·ubuntu·jdk
m0_734172424 小时前
Python字典计数怎样处理首次出现的键
java
凤山老林4 小时前
Spring Boot 集成 iText 7 实现动态 PDF 生成与电子签章:合同、报表场景实战
spring boot·后端·pdf·itext7·电子签章