1、简介
专一平安畛域,实现内容脱敏展现,冀望做到可灵便配置,灵便启用,并且最好内置丰盛插件,反对手机号、邮箱、身份证号、住址、中文名、座机号、银行卡、自定义等多种类型的脱敏配置。
由此诞生了本控件: secure-ext-spring-boot-starter
2、长处
易集成:只需引入starter包,简略到无需任何初始化配置;
灵便:具体到办法级;
内置丰盛:内置多种默认类型,且可依据本身需要,反对自定义脱敏规定
自动化:反对深度脱敏,主动寻找返回值中嵌套对象蕴含的需脱敏的属性
3、最新版本
4、应用步骤
4.1 引入依赖
<dependency> <groupId>io.gitee.chemors</groupId> <artifactId>secure-ext-spring-boot-starter</artifactId> <version>Lastest Version</version></dependency>
4.2 开启脱敏注解
sensitive: enable: true # 默认为true depth: false # 是否开启深度脱敏,默认false packages: # 扫描包门路,默认为空
4.3 增加注解
留神:
- 办法注解示意该办法的返回值须要脱敏
- 属性注解标识具体的脱敏规定
4.3.1 增加办法注解
@Desensitizationpublic Obj test(){ // 业务逻辑,构建返回对象Obj return Obj;}
4.3.2 增加属性注解
@DesensitizationProp(SensitiveTypeEnum.MOBILE_PHONE) private String mobile;
5、 默认类型阐明
- CHINESE_NAME //中文名
- ID_CARD // 身份证号
- FIXED_PHONE // 电话
- MOBILE_PHONE // 手机
- ADDRESS //地址
- EMAIL //邮箱
- BANK_CARD //银行卡号
- PASSWORD // 明码
- CUSTOM //自定义 (配合 DesensitizationProp 中preLength和sufLength 进行个性化定义)
7、示例
7.1 后盾数据
@Desensitization public SensitiveEntity simpleData() { SensitiveEntity sensitiveEntity = new SensitiveEntity(); sensitiveEntity.setId("1"); sensitiveEntity.setName("樱木花道"); sensitiveEntity.setMobile("15699996666"); sensitiveEntity.setIdCard("101010200001010001"); return sensitiveEntity;}
7.2 返回后果
{ "id": "1", "name": "樱***", "mobile": "156****6666", "idCard": "101010********0001"}