Springboot2 集成 druid 数据库密码加密

环境:

springboot  2.1.1.RELEASE

druid 1.1.13

yml配置

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: yourUrl
                username: yourUsername
                password: AfTgQgleg==
                connectionProperties: config.decrypt=true;config.decrypt.key=MFwwDEEAAQ== 
            

其中

password:为你加密后的密码

connectionProperties: config.decrypt=true;config.decrypt.key=你生成的公钥

 

这2个密码生成办法用下面的方法:

public class Testa {
	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();
		}
		
		
	}
}

还有第二种方法

在cmd控制台运行以下命令

          java -cp druid-1.1.13.jar com.alibaba.druid.filter.config.ConfigTools 你的密码

将生成的password和publicKey复制过来即可

 

最后还有一点必须配置,不然无法成功

yml配置

filter:
          config:
            enabled: true   # 数据库过滤器

一定要有这个!

 

附带一个完整yml配置

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: ***
                username: root
                password: ***
                connectionProperties: config.decrypt=true;config.decrypt.key=***
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url: 
                username: 
                password: 
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter: 
                enabled: true
                # 添加过滤规则
                url-pattern: /*
                # 忽略过滤格式
                exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
            statViewServlet:
                enabled: true
                loginUsername: druid
                loginPassword: druid123
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true
                config:
                    enabled: true   # 数据库过滤器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值