关闭阿里druid的stat-view,和swagger-ui.html不可用
一、问题描述
(1)druid
使用阿里druid的作为数据源的配置,还配置了stat-view-servlet,导致线上项目被扫描出未授权访问漏洞。简单来说就是druid/spring.html,这个页面可以直接访问,展示项目相关信息。
(2)swagger
使用swagger也是同样的问题,swagger在开发的时候方便的,但是上线的时候忘记给取消了。直接就可以访问/swagger-ui.html;
二、解决办法
(1)druid
spring:
datasource:
druid:
stat-view-servlet:
enabled: false
# url-pattern: /druid/*
我是这样的,直接把enabled改为了false,然后把地址直接给注释了。哈哈哈哈哈。
再直接访问就404了
(2)swagger
@Value("${swagger.enable}")
private Boolean enable;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.enable(enable);
}
swagger.enable 这个自行在配置文件里加上哦,主要就是Docket 里面的那个enable(enable)了。无关的我没在此处展示。
但是有个小问题,这样其实也满足要求了
不过领导要求展示404。
我反手就是WebMvcConfigurer 给他来一套
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Value("${swagger.enable}")
private Boolean enable;
@Override
public void addViewControllers(ViewControllerRegistry registry) {
if (!enable){
registry.addViewController("/swagger-ui.html").setViewName("404");
}
}
}
现在就ok了