【发布时间】:2018-05-14 02:51:56
【问题描述】:
我正在开发基于 SpringBoot 的 REST Api 并使用 Springfox 生成 swagger 文档。
这是 Swagger 的配置:
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Autowired
private AppConfiguration appConfiguration;
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("app-api")
.apiInfo(apiInfo())
.select()
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("App API")
.termsOfServiceUrl(appConfiguration.getApiTosUrl())
.version("1.0").build();
}
}
这是我正在使用的网络安全配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and().csrf().disable().authorizeRequests()
.antMatchers("/no-auth/**").permitAll()
.antMatchers("/v2/api-docs", "/swagger-resources/configuration/ui", "/swagger-resources", "/swagger-resources/configuration/security", "/swagger-ui.html", "/webjars/**").permitAll()
.anyRequest().authenticated()
.and()
.addFilter(new JWTAuthenticationFilter(securityConfiguration, authenticationManager()))
// this disables session creation on Spring Security
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder);
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues());
return source;
}
访问网址:http://localhost:8080/swagger-ui.html 抛出 HTTP 错误 405: GET request not supported。
虽然我可以访问网址:http://localhost:8080/v2/api-docs?group=app-api
我已在网上搜索以找到解决方案,但我不明白为什么会发生这种情况。
您可以指导我如何解决此问题。
编辑: 我注意到 swagger-ui.htm 根本没有被映射! 我正在使用 springfox 2.8.0
2018-05-14 12:17:47.019 INFO 1012 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : 映射 “{[/swagger-resources]}”公开 org.springframework.http.ResponseEntity> springfox.documentation.swagger.web.ApiResourceController.swaggerResources() 2018-05-14 12:17:47.020 信息 1012 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : 映射 “{[/swagger-resources/configuration/ui]}”公开 org.springframework.http.ResponseEntity springfox.documentation.swagger.web.ApiResourceController.uiConfiguration() 2018-05-14 12:17:47.021 信息 1012 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping : 映射 “{[/swagger-resources/configuration/security]}”公开 org.springframework.http.ResponseEntity springfox.documentation.swagger.web.ApiResourceController.securityConfiguration() 2018-05-14 12:17:47.026 信息 1012 --- [restartedMain] s.w.s.m.m.a.RequestMappingHandlerMapping :将“{[/error]}”映射到 上市 org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
【问题讨论】:
-
看看stackoverflow.com/a/57384025/4236965 是否可以帮助你。
标签: spring-boot springfox