SwaggerAPI未授权访问漏洞
修复方案
如果有 swagger-bootstrap-ui 依赖,将此依赖注释
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
</dependency>
配置类
@Configuration
@EnableSwagger2
// 使用配置,不生成配置类,使得Swagger UI 不可访问
@ConditionalOnProperty(name = "swagger.enable", havingValue = "true")
public class Swagger2Config implements WebMvcConfigurer {
/**
* swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
*
* @return Docket */ @Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//此包路径下的类,才生成接口文档
.apis(RequestHandlerSelectors.basePackage("com.xxx"))
.paths(PathSelectors.any())
.build()
// 需要携带请求头才能进行访问
.securitySchemes(Collections.singletonList(securityScheme()));
}
@Bean
SecurityScheme securityScheme() {
return new ApiKey(DefContants.X_ACCESS_TOKEN, DefContants.X_ACCESS_TOKEN, "header");
}
配置文件
#是否开启 swagger
swagger:
enable: false