
 背景介绍
 
在使用Spring Boot 3框架结合Spring Security进行项目开发时,我们可能会遇到集成Knife4j后Swagger文档无法正常访问的情况。本文将探讨可能的原因以及相应的解决办法。
常见问题
问题描述
当配置好Spring Security后尝试通过Knife4j访问API文档页面时,可能会出现如下情况:
- 访问Swagger UI页面时返回403 Forbidden错误。
- Swagger UI页面加载不完全或者完全不显示。
解决方案
步骤一:检查安全配置
确保你的Spring Security配置允许对Swagger资源的访问。可以通过添加特定的规则来排除Swagger相关的路径,例如:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            // 不需要校验的接口
            .requestMatchers("/api/auth/**").permitAll()
            .requestMatchers("/doc.html","/webjars/**", "/swagger-resources/**", "/v3/**").permitAll()
            .anyRequest().authenticated(); // 其他所有请求需要认证
        // ...其他配置...
    }
}步骤二:要在 yml 文件中放行
spring:
  security:
    web:
      include-filter-by-default: false # 默认情况下不包含任何过滤器
      exclude-filter:
        - /doc.html  # 这些是 swagger 文档需要放行的路径
        - /webjars/**
        - /v3/**
        - /swagger-resources/**
# 如果使用的是Spring Security的自定义配置类,可以在下面添加bean定义
# 或者直接在Java配置类中配置



![微信小程序,打开新的项目,调试遇见[ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json](https://i-blog.csdnimg.cn/direct/cdfd4adcb92e440f9bfcc24f4f347958.png)














