springboot druid多数据源密码加密
时间: 2024-10-18 12:22:52 浏览: 40
Spring Boot中集成Druid多数据源时,为了安全存储数据库密码,通常会采用对密码进行加密的方式。这主要是为了避免明文密码直接暴露在配置文件中。以下是常见的做法:
1. **使用环境变量**:可以将密码存储在系统环境变量或应用属性文件(如application.properties或application.yml)中,并通过`Environment`或`PropertySourcesPlaceholderConfigurer`读取加密后的值。
```properties
db.password=${spring.datasource.password}
```
然后在启动时,通过`@Value("${spring.datasource.password}")`自动注入加密过的密码。
2. **使用加密工具库**:例如Spring Security或Java Cryptography Extension (JCE)提供的一些功能,可以先对密码进行加密,生成一个密钥和对应的加密结果。在Spring Boot的`DataSourceBuilder`中设置加密的密码。
3. **使用Spring Cloud Config Server**:如果项目有复杂的配置管理需求,可以考虑使用Config Server管理数据库密码等敏感信息,并通过客户端的配置文件获取加密后的密码。
当你需要从Druid的配置里引用加密后的密码时,可能会看到类似这样的表达式:
```yaml
druid:
password: ${spring.cloud.config.decrypt:${spring.datasource.password}}
```
这里`${spring.cloud.config.decrypt}`是一个占位符,告诉Spring Cloud Config Server解密这个值再注入到应用中。
阅读全文