You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3集成Spring Security后Open API文档返回空的问题

问题排查与解决方案

针对Spring Boot 3.3.5集成springdoc-openapi-starter-webmvc-api 2.6.0后,/v3/api-docs返回空响应的问题,可按以下步骤排查:

1. 确保springdoc自动配置类被加载

如果Spring Security的配置或其他自动配置逻辑意外排除了springdoc的配置,可在你的Security配置类上显式导入SpringDocConfiguration:

@Configuration
@EnableWebSecurity
@EnableMethodSecurity(securedEnabled = true, jsr250Enabled = true)
@Import(SpringDocConfiguration.class)
public class SecurityConfig {
    // 你的现有配置代码
}

2. 排除JWT过滤器对文档路径的拦截

你的JWT认证过滤器可能拦截了/v3/api-docs请求,需要在过滤器中添加路径排除逻辑:

public class JwtAuthenticationFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        String path = request.getRequestURI();
        // 跳过文档相关路径
        if (path.startsWith("/v3/api-docs")) {
            filterChain.doFilter(request, response);
            return;
        }
        // 原有JWT校验逻辑
    }
}

3. 显式配置OpenAPI Bean

手动创建OpenAPI实例,确保文档元数据被正确初始化:

@Bean
public OpenAPI customOpenAPI() {
    return new OpenAPI()
            .info(new Info()
                    .title("项目API文档")
                    .version("1.0")
                    .description("项目接口的OpenAPI规范文档"));
}

4. 检查上下文路径配置

如果项目设置了server.servlet.context-path,需确保springdoc的路径配置匹配:
在application.properties/yaml中添加:

springdoc.api-docs.path=/v3/api-docs

(如果上下文路径是/app,那么访问路径应为/app/v3/api-docs)

5. 验证依赖兼容性

确认pom.xml(或build.gradle)中仅引入正确的springdoc依赖,无版本冲突:

<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
    <version>2.6.0</version>
</dependency>

内容的提问来源于stack exchange,提问作者Habchi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:42:08