Closed badwood316 closed 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; } }
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; } }
可以自定义加密
自定义加密,拿到代码是可以复原出密码的 而且共享代码就可以不用担心密码泄漏了。
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; } }