1、起因,代码扫描不合格,配置文件不能使用明文密码。。
2、解决方案:项目使用的是Druid driver
可以在配置文件中启用ConfigFilter来进行加密操作
3、步骤
- 使用
com.alibaba.druid.filter.config.ConfigTools生成加密密码和公钥。
public class EncryptPwdUtil { public static void main(String[] args) { try { String password = "你的数据库密码"; String[] arr = ConfigTools.genKeyPair(512); System.out.println("druidPublicKey:" + arr[1]); System.out.println("hashedPassword:" + ConfigTools.encrypt(arr[0], password)); } catch (Exception e) { e.printStackTrace(); } } }
- 更改配置文件
# 这里是加密后的密码
spring.datasource.druid.password=U0oBJ0F4rA4uZMp15SyCeSQL9dKICna6lSMrUWG4EhrVUkzSiuPJIAqcgcFeQgP0XDaNNneAQn7CdPpUZPxGaA==
# 这是公钥
app.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIM0BDWk2SCqlvWatlj/x1jiLZwRLu94fI2LkiXRk8mLFeprGCxSxxYeRG8eIf60LzFSpwFbfqDSswxwLBmDE6kCAwEAAQ==
# 配置 connection-properties,启用加密,配置公钥。
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${app.publickey}
# 启动ConfigFilter
spring.datasource.druid.filter.config.enabled=true
重新启动服务即可