使用 Spring Security 允许匿名访问 springdoc-openapi-ui

Evg*_*yst 7 java spring spring-security openapi springdoc

如何在 Spring Security 保护的 Spring Boot 应用程序中允许匿名访问springdoc-openapi-ui (OpenAPI 3.0 /swagger-ui.html)?

Evg*_*yst 12

要使用 springdoc-openapi-ui /swagger-ui.html,请允许匿名访问WebSecurityConfigurerAdapterusingpermitAll方法中的以下端点:

  • /v3/api-docs/**
  • /swagger-ui/**
  • /swagger-ui.html

例子:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  public void configure(HttpSecurity http) throws Exception {
    http.
        .authorizeRequests()
        .antMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll()
        .anyRequest().authenticated()
        .and()
        .httpBasic(); //or anything else, e.g. .oauth2ResourceServer().jwt()
  }
}
Run Code Online (Sandbox Code Playgroud)

确保项目具有以下依赖项:

  • 我也必须这样做:https://github.com/springdoc/springdoc-openapi/issues/230#issuecomment-563485698 (2认同)