Pre Merge pull request !273 from Gszekt/master

This commit is contained in:
Gszekt 2021-03-21 10:55:34 +08:00 committed by Gitee
commit fcfd475fac
2 changed files with 34 additions and 2 deletions

View File

@ -8,7 +8,7 @@ spring:
master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: password
password: # 使用 com.alibaba.druid.filter.config.ConfigTools 加密后生成的 password
# 从库数据源
slave:
# 从数据源开关/默认关闭
@ -54,4 +54,11 @@ spring:
merge-sql: true
wall:
config:
multi-statement-allow: true
multi-statement-allow: true
filters:
config:
# 数据库密码是否加密开关false 表示密码使用明文
enabled: true
connect-properties:
config.decrypt: true
config.decrypt.key: # 使用 com.alibaba.druid.filter.config.ConfigTools 加密后生成的 publicKey

View File

@ -4,6 +4,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;
import java.util.Properties;
/**
* druid 配置属性
*
@ -45,6 +47,15 @@ public class DruidProperties
@Value("${spring.datasource.druid.testOnReturn}")
private boolean testOnReturn;
@Value("${spring.datasource.druid.filters.config.enabled}")
private boolean configFilterEnabled;
@Value("${spring.datasource.druid.connect-properties.config.decrypt}")
private String decryptEnabled;
@Value("${spring.datasource.druid.connect-properties.config.decrypt.key}")
private String decryptKey;
public DruidDataSource dataSource(DruidDataSource datasource)
{
/** 配置初始化大小、最小、最大 */
@ -72,6 +83,20 @@ public class DruidProperties
datasource.setTestOnBorrow(testOnBorrow);
/** 归还连接时执行validationQuery检测连接是否有效做了这个配置会降低性能。 */
datasource.setTestOnReturn(testOnReturn);
if (configFilterEnabled) {
try {
/* 启用数据库密码解密 */
datasource.setFilters("config");
Properties properties = new Properties();
properties.put("config.decrypt", decryptEnabled);
properties.put("config.decrypt.key", decryptKey);
datasource.setConnectProperties(properties);
} catch (Exception exception) {
exception.printStackTrace();
}
}
return datasource;
}
}