4.3 Jasypt Spring Boot 原理
Jasypt Spring Boot 它注册了一个 Spring 后处理器,它修饰包含在 Spring Environment 中的所有 PropertySource 对象,并按照 Jasypt 的配置约定对属性进行加解密。
来跟一波源码:
源码有点复杂,一路找到了DefaultPropertyResolver
这个解密器,然后它也是注入了 StringEncryptor
这个实例,获取配置时,会进行解密后再返回。
另外,这个 Resolver 也是支持自定义的,有兴趣的可以深入研究下。
总结
好了,今天栈长介绍了 Spring Boot 保护敏感配置信息的 4 种方法,总结一下:
- 配置中心(支持自动加解密)
- 自定义加解密机制
- 数据库机制
- Jasypt Spring Boot(第三方加解密方案)
总之敏感信息不要放在 Spring Boot 配置文件中,一定要放,就一定要加密,这 4 种方案各有各的应用场景,要结合公司现有的架构和系统规模作出权衡,另外之前写的这篇《分布式系统中处理参数配置的 4 种方案》也供大家参考下。
本节教程所有实战源码已上传到这个仓库: