admin管理员组文章数量:1578024
目录
场景说明:基于应用服务器部署的要求,需要对部署应用工程涉及数据库密码的配置文件,进行加密或者密文设置;明文设置有安全风险,若是应用服务器被攻克,假如你的数据库密码是密文,那么你的数据库的所有数据也会被爬光的,若是涉及敏感数据,后果不堪设想。
1、引入druid包
2、找到druid.jar
3、加密密文和生成公钥、私钥(一气呵成)
4、配置数据库连接文件
5、测试验证
场景说明:基于应用服务器部署的要求,需要对部署应用工程涉及数据库密码的配置文件,进行加密或者密文设置;明文设置有安全风险,若是应用服务器被攻克,假如你的数据库密码是密文,那么你的数据库的所有数据也会被爬光的,若是涉及敏感数据,后果不堪设想。
1、引入druid包
maven工程参考如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.18</version>
</dependency>
2、找到druid.jar
本人使用的ECELIPSE工具,可以右键工程,查看属性。参照下图找到jar包位置
找到此目录,并打开你本机的DOS终端(嘿嘿的界面),并切换到JAR目录,如下所示:
3、加密密文和生成公钥、私钥(一气呵成)
然后输入以下命令
java -cp druid-1.1.18.jar com.alibaba.druid.filter.config.ConfigTools wwwwww > encode.txt
意思是将密码明文wwwwww进行加密,将结果输出到文件encode.txt(自动创建此文件)
执行后,当前目录会出现文件:encode.txt
4、配置数据库连接文件
有了这两项法宝,就可以配置我们的配置文件了,以下配置是mysql的配置
application.properties配置举例:
# 数据源配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
# 主库数据源
spring.datasource.druid.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.druid.username=test
spring.datasource.druid.password=AmVPLGYSVTOf5P3f7qb6G+4jsed+DUrS6qlhwRH3Ee6d3/pYlQy25B5ElIUJiJLagNJnWA36FttCIok0FPVy2Q==
spring.datasource.druid.connect-properties.config.decrypt=true
spring.datasource.druid.connect-properties.config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL/xbyiyIbq2r4oHWdkKMH5Gp5HNEl3je/amTco7yMFVZtanMOMvH5NirM08qayfbdHHTENCmd4zNqiThOL7DbkCAwEAAQ==
# 初始连接数
spring.datasource.druid.initialSize=5
# 最小连接池数量
spring.datasource.druid.minIdle=10
# 最大连接池数量
spring.datasource.druid.maxActive=200
# 配置获取连接等待超时的时间
spring.datasource.druid.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.druid.minEvictableIdleTimeMillis=300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
spring.datasource.druid.maxEvictableIdleTimeMillis=900000
# 配置检测连接是否有效
spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.stat-view-servlet.enabled=true
# 设置白名单,不填则允许所有访问
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.url-pattern=/monitor/druid/*
spring.datasource.druid.filter.stat.enabled=true
# 慢SQL记录
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=1000
spring.datasource.druid.filter.stat.merge-sql=true
spring.datasource.druid.filter.wall.config.multi-statement-allow=true
#数据库过滤器
spring.datasource.druid.filter.config.enabled=true
非常关键的地方来了:
这个没配置,就没法通过过滤器解析配置的密文了
spring.datasource.druid.filter.config.enabled=true
spring.datasource.druid.connect-properties.config.decrypt.key
复制encode.txt中的pubicKey的值
spring.datasource.druid.password
复制encode.txt中的password的值
5、测试验证
若是不行,可查看是否复制的值有漏掉的,或者decrypt.key的值错误的设置为privateKey私钥了? 重复检查,如果不行,请重新来过。
本文标签: 配置文件密码数据库SpringBootdruid
版权声明:本文标题:druid加密 springboot application.properties配置文件数据库密码加密 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726220579a1061061.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论