无法在spring boot security中公开swagger doc ui/api

eni9jsuy  于 2021-07-23  发布在  Java
关注(0)|答案(2)|浏览(274)

我想补充一下 swagger 到我现有的应用程序。我添加了以下依赖项:

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

现在api /swagger-ui/ 以及 /v2/api-docs 工作正常。我正在restapi中开发应用程序。api在 POST man 当我和他们一起发送jwt令牌时。它们不在浏览器中工作。
为了让它们在浏览器中工作,我在spring中添加了url的security permit all。但它仍然不能在浏览器中工作。
Spring安全配置:

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
                .authorizeRequests()
                .antMatchers(
                        .............
                        "/v2/api-docs",
                        "/swagger-ui.html")
                .permitAll().anyRequest().authenticated().and().addFilter(getAuthenticationFilter())
                .addFilter(new AuthorizationFilter(authenticationManager())).sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().cors();

    }

我怎样才能公开这些api?

vc6uscn9

vc6uscn91#

尝试使用安全配置

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    private static final String[] AUTH_WHITELIST = {
            "/healthz"
    };

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring()
                .antMatchers(AUTH_WHITELIST);
    }
}
jqjz2hbq

jqjz2hbq2#

你需要公开更多的网址,而不仅仅是这两个。
springfox文档声明允许以下url

.antMatchers(
          HttpMethod.GET,
          "/v2/api-docs",
          "/swagger-resources/**",
          "/swagger-ui.html**",
          "/webjars/**",
          "favicon.ico"
        ).permitAll()

或者忽略它们:

@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
  @Override
  public void configure(WebSecurity web) throws Exception {
    web.ignoring()
      .antMatchers(
        "/v2/api-docs",
        "/swagger-resources/**",
        "/swagger-ui.html**",
        "/webjars/**");
  }
}

资料来源:https://springfox.github.io/springfox/docs/current/

相关问题