安全扫描:通用信息泄漏【未授权访问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
setHeaderToken() { - ParameterBuilder tokenPar = new ParameterBuilder();
- List
pars = new ArrayList<>(); - tokenPar.name("token").description("token").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
- pars.add(tokenPar.build());
- return pars;
- }
- }