druid监控页面登录弱口令(监控的登录密码是admin12345的话不属于弱口令)

druid监控页面登录弱口令(监控的登录密码是admin12345的话不属于弱口令)在上一篇文章 Spring Boot 三 ORM 框架 JPA 与连接池 Hikari 我们介绍了 JPA 与连接池 Hikari 的整合使用 在国内使用比较多的连接池还有一个是阿里开源的 Druid 本篇文章我们就来聊一聊 Druid 的一些使用姿势 1 Druid 是什么 我们先来看一下官方的回答 Druid 是 Java 语言中最好的数据库连接池 Druid

大家好,我是讯享网,很高兴认识大家。



druid监控 github druid监控页面登录弱口令_druid监控 github
讯享网

在上一篇文章《Spring Boot (三): ORM 框架 JPA 与连接池 Hikari》 我们介绍了 JPA 与连接池 Hikari 的整合使用,在国内使用比较多的连接池还有一个是阿里开源的 Druid 。本篇文章我们就来聊一聊 Druid 的一些使用姿势。

1. Druid 是什么?

我们先来看一下官方的回答:

Druid 是 Java 语言中最好的数据库连接池。 Druid 能够提供强大的监控和扩展功能。

说 Druid 是 Java 语言中最好的数据库连接池,这个笔者个人觉得有些吹牛了,至少在性能上和我们上一篇介绍的 Hikari 是没得比的,相关的性能测试在网上能找到很多,笔者这边就不列举了。但是 Druid 在其他的一些方面就做的比较出色了,功能非常丰富:

  • 可以监控数据库访问性能, Druid 内置提供了一个功能强大的StatFilter插件,能够详细统计 SQL 的执行性能,这对于线上分析数据库访问性能有帮助。
  • 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。 DruidDruiver 和 DruidDataSource 都支持 PasswordCallback 。
  • SQL 执行日志, Druid 提供了不同的 LogFilter ,能够支持 Common-Logging 、 Log4j 和 JdkLog ,你可以按需要选择相应的 LogFilter ,监控你应用的数据库访问情况。
  • 扩展 JDBC ,如果你要对 JDBC 层有编程的需求,可以通过 Druid 提供的 Filter 机制,很方便编写 JDBC 层的扩展插件。

2. Spring Boot 应用中如何使用

目前 Druid 官方为我们提供了两种使用依赖方式,一种是基于传统 Java 工程提供的依赖包, maven 坐标如下:

还有一种是基于 Spring Boot 提供的依赖包, maven 坐标如下:

下面的这种依赖包除了包含了上面的那种 Druid 基础包,还包含了 Spring Boot 自动配置的依赖包以及 sl4j-api ,我们在 Spring Boot 中使用 Druid ,当然是推荐各位读者使用第二种方式引入依赖。

druid监控 github druid监控页面登录弱口令_druid监控 github_02

3. 工程实战

3.1 创建父工程 spring-boot-jpa-druid

父工程 pom.xml 如下:

代码清单:spring-boot-jpa-druid/pom.xml


  • 笔者这里使用的 Druid 依赖包是 druid-spring-boot-starter ,版本号为 1.1.20。

3.2 数据库密码不加密的配置文件 application-pass.yml 如下:

代码清单:spring-boot-jpa-druid/src/main/resources/application-pass.yml


  • 相关配置的含义已经写在注释中了,这里有一点要讲一下,当我们要配置统计信息(包括监控信息) time-between-log-stats-millis 输出至日志中,合并多个DruidDataSource的监控数据 use-global-data-source-stat 不可开启,否则启动会报错。
  • spring.datasource.druid.filters :因为 Druid 的扩展是通过 Filter 插件的形式来开启的,这里我们开启了 stat 和 wall ,这俩个分别为监控和防御 SQL 注入Druid 还提供了一些其他默认的 Filter ,如下表:

druid监控 github druid监控页面登录弱口令_druid监控页面_03

从名称上可以看出来,主要是一些编码和日志的相关 Filter 。

3.3 数据库密码加密

在生产环境中,直接在配置文件中暴露明文密码是一件非常危险的事情,出于两点考虑:对外,即使应用服务被入侵,数据库还是安全的;对内,生产环境的数据库密码理论上应该只有 dba 知道,但是代码都是在代码仓库中放着的,如果密码没有加密,每次发布前 dba 都需要手动修改配置文件后再进行打包编译。

首先,我们需要生成数据库密码的密文,需要在命令行中执行如下命令:

输出如下:

这里我们需要将生成的公钥 publicKey 和密码 password 加入配置文件中, application-decrypt.yml 如下:

代码清单:spring-boot-jpa-druid/src/main/resources/application-decrypt.yml


  • 已省略部分配置,有需要的读者可以访问 Github 仓库获取。

3.4 配置文件 application.yml 如下:

代码清单:spring-boot-jpa-druid/src/main/resources/application.yml


其余的测试代码同上一篇文章《Spring Boot (三): ORM 框架 JPA 与连接池 Hikari》,有兴趣的读者可以访问 Github 仓库获取,笔者这里就不一一列举了。

4. 测试

我们在主配置文件中,选择密码加密的配置文件启动,将 spring.profiles.active 配置为 decrypt ,点击启动,可以看到工程正常启动,查看控制台输出日志,其中有这么一句:

小讯
上一篇 2025-06-02 12:42
下一篇 2025-06-16 08:34

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/202515.html