baomidou / dynamic-datasource

dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务
https://www.kancloud.cn/tracy5546/dynamic-datasource/2264611
Apache License 2.0
4.76k stars 1.2k forks source link

数据库配置中的密码安全性 #462

Closed badwood316 closed 2 years ago

badwood316 commented 2 years ago

1年多以前提出过数据库配置文件中的密码安全性问题,当时没有完成它,现在想重新提一下: password属性使用环境变量,这样代码和配置文件中不存在泄漏密码的风险了。 现在修改了下3.5.2的com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider代码,AbstractJdbcDataSourceProvider函数,不知是否可以被接受? public AbstractJdbcDataSourceProvider(String driverClassName, String url, String username, String password) { this.driverClassName = driverClassName; this.url = url; this.username = username; //环境变量中加载密码,格式为:${ENV} if(StringUtils.startsWithIgnoreCase(password,"${") && StringUtils.endsWithIgnoreCase(password, "}")){ this.password = System.getenv(password.substring(2,password.length()-2)); }else{ this.password = password; } }

huayanYu commented 2 years ago

可以自定义加密

badwood316 commented 2 years ago

自定义加密,拿到代码是可以复原出密码的 而且共享代码就可以不用担心密码泄漏了。