配置Swagger开发环境有效,生产环境无效

安全扫描:通用信息泄漏【未授权访问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;
    }
}

参考:https://www.cnblogs.com/woshimrf/p/disable-swagger.html

你可能感兴趣的:(spring,boot)