安全扫描:通用信息泄漏【未授权访问ip:端口号/swagger-ui.html】
步骤一:配置启用变量【开发环境可用+生产环境不可用】
application-dev.yml:
swagger:
enable: true
application-pro.yml:
swagger:
enable: false
步骤二:根据配置变量控制是否启用swagger【主要.enable(enableSwagger)】
@Configuration
@EnableSwagger2
public class Swagger2 {
@Value("${swagger.enable}")
private boolean enableSwagger;//配置开发环境可用,正式环境不可用
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(this.apiInfo())
.enable(enableSwagger)
.select()
.apis(RequestHandlerSelectors.basePackage("xxx.xxx.xxx"))
.paths(PathSelectors.any())
.build()
.globalOperationParameters(setHeaderToken());
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("xxxxx")
.description("xxxxxxx")
.termsOfServiceUrl("http://xxx.xxx.xxx")
.version("1.0")
.build();
}
private List<Parameter> setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List<Parameter> pars = new ArrayList<>();
tokenPar.name("token").description("token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
pars.add(tokenPar.build());
return pars;
}
}