毕业设计解决方案

Spring Doc

  • 访问 /swagger-ui.html 重定向的页面,没有 api 显示

  • 因为用到 Spring Security,所以很有可能请求被拦截了,需要配置 Spring Security 访问 Spring Doc 资源

    • 注意,Spring Doc 配置和以前 Spring Fox 的 Swagger 放行路径不太一样

    • 这个导致困惑了好几天,最后根据 Doc 的 Default swagger 页面的 Explore 默认项试出来了

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
         // 其他配置项可以随便加
         // Spring Fox 的 Swagger 需要放行 "/swagger-resources/**", "/swagger-ui/**"
         // Spring Doc 的 Swagger 需要放行 "/v2/**"
         // 这里放行 v2/v3 依据自己的 Spring Doc 版本决定
            .antMatchers("/v3/**").permitAll()
            .anyRequest().authenticated();
    return http.build();
}

跨域

POST 请求遭到拦截

  • OPTIONS <some_url> Missing Allow Origin
  • POST 请求会发出 OPTIONS 请求预检,后端配置放行 OPTIONS 但 POST 还是跨域
  • 可能是跨域设置里面没有允许携带头部信息,而只允许了方法,但是 POST 请求有头部信息,不允许携带即写入或读取不了 Access-Control-Allow-Headers 于是遭到拦截,可以参考一篇 CSDN
  • 允许携带头部信息即可
configuration.setAllowedHeaders(List.of("*"));