获得spring-security背后的springfox swagger-ui

时间:2016-12-16 07:58:46

标签: spring-security swagger-ui springfox

我将在Spring Boot(1.4.2v)中使用带有swagger-ui的springfox(2.6.1v)。

它的配置如下:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

  @Bean
  public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
               .select()
               .apis(RequestHandlerSelectors.any())
               .paths(PathSelectors.any())
               .build()
               .genericModelSubstitutes(ResponseEntity.class);
  }
}

问题是,我的招摇是春天安全的后盾,我只需要管理员允许访问。

问题是什么应该是允许swagger-ui在我的应用程序中工作的匹配器集?

public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .antMatchers("??? <<<what_should_be_here>>> ???") // what should be here?
        .hasRole("TENANT_ADMIN");
  }
}

1 个答案:

答案 0 :(得分:2)

好的,首先我找到了解决方案here,所以按照以下几行:

.antMatchers("/admin/system/state/*", "/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security", "/swagger-ui.html", "/webjars/**")

但是仍然没有用,因为我已经问了这个问题。但经过深入调查后发现,春狐不支持GSON。当你使用GSON作为&#34;到json&#34;转换器swagger-ui收到略有不同的JSON格式,导致问题...

当我们将转换器更改为Jackson并将上述路径添加到spring-config时,它可以毫无问题地工作。

我甚至在spring-fox github here上请求了新功能。