Springboot - druid 数据库密码加密
yml配置
jasypt:encryptor:password: U3buwRJdQ2023algorithm: PBEWithMD5AndDES
# 数据源配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverdruid:# 主库数据源master:url: yourUrlusername: yourUsernamepassword: AfTgQgleg==connectionProperties: config.decrypt=true;config.decrypt.key=MFwwDEEAAQ== # 数据库过滤器filter:config:enabled: true
password:为你加密后的密码
connectionProperties: config.decrypt=true;config.decrypt.key=你生成的公钥
生成数据
方法一
public class DruidEncryptorUtils {public static void main(String[] args) {try {String password = "yourPassword";String[] arr = ConfigTools.genKeyPair(512);// System.out.println("privateKey:" + arr[0]);System.out.println("publicKey:" + arr[1]);System.out.println("password:" + ConfigTools.encrypt(arr[0], password));} catch (Exception e) {e.printStackTrace();}}
}
方法二
java -cp druid-1.1.22.jar com.alibaba.druid.filter.config.ConfigTools 你的密码
完整配置
# 数据源配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverdruid:# 主库数据源master:url: ***username: rootpassword: ***connectionProperties: config.decrypt=true;config.decrypt.key=***# 从库数据源slave:# 从数据源开关/默认关闭enabled: falseurl: username: password: # 初始连接数initialSize: 5# 最小连接池数量minIdle: 10# 最大连接池数量maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis: 900000# 配置检测连接是否有效validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsewebStatFilter: enabled: true# 添加过滤规则url-pattern: /*# 忽略过滤格式exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"statViewServlet:enabled: trueloginUsername: druidloginPassword: druid123# 设置白名单,不填则允许所有访问allow:url-pattern: /druid/*filter:stat:enabled: true# 慢SQL记录log-slow-sql: trueslow-sql-millis: 1000merge-sql: truewall:config:multi-statement-allow: trueconfig:enabled: true # 数据库过滤器