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

相关推荐
sinat_2554878122 分钟前
IDEA:查找文件/类
java·ide·设计模式·intellij-idea
不肯过江东丶25 分钟前
大聪明教你学Java | Spring AI Lab:一个让你 3 分钟接入 AI 对话能力的 Spring Boot 工具箱
spring boot·后端
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第77题】【Mysql篇】第7题:回表查询与全表扫描的区别?
java·开发语言·数据库·mysql·面试
lulu12165440781 小时前
Claude Code SpringBoot技能体系架构设计与演进
java·人工智能·spring boot·后端·ai编程
callJJ1 小时前
Nacos 详解——从概念到实战
java·spring boot·spring·spring cloud·微服务·nacos
小马爱打代码2 小时前
Spring源码 第三篇:Spring 源码深度拆解:循环依赖 + 三级缓存
java·spring·缓存
罗超驿2 小时前
5.Java线程创建全攻略:5种写法 + 高频面试题解析
java·开发语言·java-ee
阿维的博客日记2 小时前
怎么理解Filter不是在afterCompetition里面remove掉ThreadLocal里面的东西,而是说在finally块里面remove
java
Simon523142 小时前
反射------5.26学习小计
java·开发语言·spring boot
程序员老邢2 小时前
《技术底稿 42》查新功能通用化改造:从单一期刊到多源命中,缓存与表结构一次重构
java·后端·缓存·重构·技术底稿