SpringBoot加密配置属性
2023-02-18 16:27:48 时间
一、背景
在系统中的运行过程中,存在很多的配置属性,比如: 数据库配置、阿里云配置 等等,这些配置有些属性是比较敏感的,是不应直接以明文的方式出现在配置文件中,因此对于这些配置我们就需要加密来处理。
二、需求
先如今我们系统中存在如下数据库配置,其中数据库的密码
和数据库的url
属于敏感配置,在配置文件中需要加密展示,而不应该使用明文展示.
# 此属性的值需要加密展示
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/seata_account?useUnicode=true&characterEncoding=utf8&autoReconnectForPools=true&useSSL=false
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
# 此属性的值需要加密展示
spring.datasource.password=root
配置的加密
我们实用 github 上 https://github.com/ulisesbocchio/jasypt-spring-boot 这个开源项目来实现。
三、实现步骤
1、引入jar包
<!-- 配置加密(start) -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<!-- 配置加密(end) -->
2、配置加密配置
vi application.properties
# 加密的密钥,这个值特别重要,建议做成系统的环境变量或通过jar启动的时候传递进去
jasypt.encryptor.password=123456789
jasypt.encryptor.property.prefix=ENC(
jasypt.encryptor.property.suffix=)
jasypt.encryptor.string-output-type=base64
注意:
上方有一个 jasypt.encryptor.password
配置属性,这个属性的值建议通过 jar包启动的时候通过 -D
参数执行,而不要写在配置文件中。
3、加密属性
1、获取加密属性的值
加密属性,官方提供了通过 maven插件
和 代码
的方式来加密,此处采用代码
的方式来加密。
当我们引入了 jasypt-spring-boot-starter
这个jar包,就自动配置了一个 StringEncryptor
实例,可以用来加解密属性。这个StringEncryptor
这个实例我们也可以自己提供来覆盖默认的。
2、配置文件中替换加密的值
4、查看运行结果
从上图中可知:
- 配置文件的属性被加密了。
- 数据源可以获取到正确的连接。
- 程序运行时配置是解密的。
四、完整代码
https://gitee.com/huan1993/spring-cloud-parent/tree/master/springboot/springboot-encrypt-config
五、参考链接
相关文章
- K8 系统中省市县数据表的设计可以反映出什么? 通过一个基础业务表的设计品味软件系统的整体架构
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 用户权限树的实现 -- 权限递归树
- C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 多系统开发接口 - 苹果客户端开发接口
- 大数据下载功能优化实现
- 2013圣诞节前程序员对话记录留念
- 通用权限管理系统组件-数据权限参考
- 经得起严酷实战考验的高性能到大型信息系统的核心底层-通用权限管理系统组件
- C#开发中Windows域认证登录2(扩展吉日嘎拉GPM系统)
- C#.NET 大型信息化系统集成快速开发平台 - 手机短信开发接口 4.0
- 多软件子系统集成的效果图-通用权限管理系统组件4.0版本
- 通用权限管理系统组件回答用户的常用问题:操作权限、用户角色、数据权限的解决方法
- 一起打造.NET职业生涯奇迹 中国十大快递公司之一的核心业务系统采用.NET通用权限管理系统组件架构重构[重磅博客园独有福利]
- 通用权限管理系统组件3.9 的 Oracle 数据库创建脚本参考
- 折腾了1周把程序从sqlserver迁移到oracle上了,每折腾一次需要耗费1周时间
- 通用权限管理系统数据字典 V3.9 版本,欢迎开发个各种业务系统的朋友们,参考表结构
- 管理内容及要求
- 购买通用权限管理系统组件的理由,欢迎大家补充
- 在博客园发福利 - 行走江湖多年辛苦你了,在全国各地实体书店买“程序员你伤不起”,赠送200本(购书开发票报销)
- C# 单点登录 MVC
- 支持MVC的代码生成运行效果 C# ASP.NET