Druid关闭监控页面关闭不了的问题及解决
更新时间:2024年05月27日 08:57:26 作者:weixin_45614626
这篇文章主要介绍了Druid关闭监控页面关闭不了的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Druid关闭监控页面关闭不了
项目里连接数据库使用了阿里开源的druid,结果被发现有安全漏洞,可以直接访问到druid的监控界面。
但是奇怪的是,明明在yml文件里配置了关闭,同时allow的访问IP是127.0.0.1,还设置了用户名和密码,但是就是关不了
配置如下:
datasource: x-wr: driverClassName: com.mysql.jdbc.Driver name: mysql type: com.alibaba.druid.pool.DruidDataSource druid: #基本属性 url: jdbc:mysql:// username: x_rw password: 11111 filter: stat: enabled: false #默认值为true,监控sql\慢sql等功能,我们建议修改为false,如果需要打开监控页面或者将慢sql输出到日志中,则修改为true。 wall: enabled: false #默认值为false,sql防火墙,支持过滤sql,如禁止使用delete *等操作。 slf4j: enabled: false #指定使用slf4j日志组件,支持选择将各种操作过程输出到日志中。 log4j2: enabled: false #指定使用log4j2日志组件,支持选择将各种操作过程输出到日志中。 log4j: enabled: false #指定使用log4j日志组件,支持选择将各种操作过程输出到日志中。 commons-log: enabled: false #指定使用commons-log日志组件,支持选择将各种操作过程输出到日志中。 stat-view-servlet: enabled: false #默认值为true,即打开监控页面,但存在泄漏信息的风险,所以修改为false login-username: hhhh #配置监控页面登录用户名,启用监控页面后才可用,建议业务方,重新定义,别使用我们的给定值 login-password: ssdd #配置监控页面登录密码,启用监控页面后才可用,建议业务方,重新定义,别使用我们的给定值 allow: 127.0.0.1 #配置允许访问监控页面的IP地址 web-stat-filter: enabled: false #默认值为true,统计web关联的监控信息如session/url等,建议修改为false session-stat-enable: false #该功能模块代码不完善,特定场景下会诱发异常,非特别需求,建议修改为false #配置初始化大小/最小/最大 initial-size: 1 min-idle: 1 max-active: 20 #获取连接等待超时时间 max-wait: 60000 #间隔多久进行一次检测,检测需要关闭的空闲连接 time-between-eviction-runs-millis: 60000 #一个连接在池中最小生存的时间 min-evictable-idle-time-millis: 300000 validation-query: SELECT 'x' test-while-idle: true test-on-borrow: false test-on-return: false #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false pool-prepared-statements: false max-pool-prepared-statement-per-connection-size: 20 connection-init-sqls: set names utf8mb4 x-ro: driverClassName: com.mysql.jdbc.Driver name: mysql type: com.alibaba.druid.pool.DruidDataSource druid: #基本属性 url: jdbc:mysql:// username: x_ro password: 00000 filter: stat: enabled: false #默认值为true,监控sql\慢sql等功能,我们建议修改为false,如果需要打开监控页面或者将慢sql输出到日志中,则修改为true。 wall: enabled: false #默认值为false,sql防火墙,支持过滤sql,如禁止使用delete *等操作。 slf4j: enabled: false #指定使用slf4j日志组件,支持选择将各种操作过程输出到日志中。 log4j2: enabled: false #指定使用log4j2日志组件,支持选择将各种操作过程输出到日志中。 log4j: enabled: false #指定使用log4j日志组件,支持选择将各种操作过程输出到日志中。 commons-log: enabled: false #指定使用commons-log日志组件,支持选择将各种操作过程输出到日志中。 stat-view-servlet: enabled: false #默认值为true,即打开监控页面,但存在泄漏信息的风险,所以修改为false login-username: hhhh #配置监控页面登录用户名,启用监控页面后才可用,建议业务方,重新定义,别使用我们的给定值 login-password: ssdd #配置监控页面登录密码,启用监控页面后才可用,建议业务方,重新定义,别使用我们的给定值 allow: 127.0.0.1 #配置允许访问监控页面的IP地址 web-stat-filter: enabled: false #默认值为true,统计web关联的监控信息如session/url等,建议修改为false session-stat-enable: false #该功能模块代码不完善,特定场景下会诱发异常,非特别需求,建议修改为false #配置初始化大小/最小/最大 initial-size: 1 min-idle: 1 max-active: 20 #获取连接等待超时时间 max-wait: 60000 #间隔多久进行一次检测,检测需要关闭的空闲连接 time-between-eviction-runs-millis: 60000 #一个连接在池中最小生存的时间 min-evictable-idle-time-millis: 300000 validation-query: SELECT 'x' test-while-idle: true test-on-borrow: false test-on-return: false #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false pool-prepared-statements: false max-pool-prepared-statement-per-connection-size: 20 connection-init-sqls: set names utf8mb4
试了各种方法都不行,于是上网查了一下,发现确实是个bug(可以参考这篇文章bug)
于是解决方法就只能变成替换成hikari,怎么替换可以看我的文章hikari替换druid
关闭druid监控 实测好用
spring.datasource.druid.filter.config.enabled=false spring.datasource.druid.web-stat-filter.enabled=false spring.datasource.druid.stat-view-servlet.enabled=false
注释掉 public class DruidConfiguration 类
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决swaggerUI页面没有显示Controller方法的坑
这篇文章主要介绍了解决swaggerUI页面没有显示Controller方法的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06Java8函数式接口java.util.function速查大全
因为Java8引入了函数式接口,在java.util.function包含了几大类函数式接口声明,这篇文章主要给大家介绍了关于Java8函数式接口java.util.function速查的相关资料,需要的朋友可以参考下2021-08-08
最新评论