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

Spring Boot 1.5项目从Springfox迁移至Springdoc后Swagger UI无法访问

排查Spring Boot 1.5中Springdoc Swagger UI无法访问的问题

一、确认Springdoc版本适配

Spring Boot 1.5属于老版本,得用兼容的Springdoc版本,比如1.6.15(这是支持Spring Boot 1.x的最后几个稳定版本之一)。检查pom.xml或build.gradle里的依赖版本,别用只支持Spring Boot 2.x的新版本,不然会出现兼容性问题。

二、安全配置排查(核心排查点)

既然怀疑是安全拦截,直接看项目的Spring Security配置:

  • 必须把Swagger UI相关URL加入白名单,允许匿名访问,需要放行的路径包括:
    • /swagger-ui/**
    • /v3/api-docs/**
    • 旧路径/swagger-ui.html也可以顺便加上,避免遗漏
  • Java配置示例:在configure(HttpSecurity http)方法里添加放行规则:
    http.authorizeRequests()
        .antMatchers("/swagger-ui/**", "/v3/api-docs/**", "/swagger-ui.html").permitAll()
        .anyRequest().authenticated();
    
  • 如果项目启用了CSRF防护,要对Swagger相关路径关闭CSRF,否则会拦截请求:
    http.csrf().ignoringAntMatchers("/swagger-ui/**", "/v3/api-docs/**");
    

三、过滤器链排查

项目里如果有自定义过滤器,逐个排查是否拦截了Swagger UI的请求:

  • 可以临时注释掉自定义过滤器,测试能否访问Swagger UI,逐步定位是哪个过滤器导致的问题
  • 检查过滤器的URL匹配规则,别把/swagger-ui/**这类路径包含在拦截范围内;如果必须拦截,要确保过滤器不会阻断请求的正常返回流程

四、日志调试定位问题

开启DEBUG日志,直接看请求被拦截的具体环节:

  • 在application.yml里添加日志配置:
    logging:
      level:
        org.springframework.security: DEBUG
        org.springdoc: DEBUG
    
  • 启动项目后访问Swagger UI的URL,查看日志里的请求流转,比如是否出现403/401错误,或者Security过滤器的拦截记录,根据日志提示精准定位问题点

五、验证Swagger UI配置正确性

  • 你配置了springdoc.swagger-ui.path: /swagger-ui和use-root-path: true,实际访问路径应该是/swagger-ui/index.html,别混同Springfox的旧路径/swagger-ui.html
  • 可以先简化配置,去掉use-root-path: true,用默认路径/swagger-ui/index.html测试,排除配置冲突的可能

六、静态资源访问检查

Spring Boot 1.5的静态资源处理逻辑和2.x不同,要确保Swagger UI的静态资源(JS、CSS、HTML等)能被正确加载:

  • 如果项目自定义了静态资源路径配置,必须把Springdoc的静态资源目录META-INF/resources/webjars/加入静态资源扫描路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 07:50:10