学堂 学堂 学堂公众号手机端

太好用啦,springboot脱敏如此简单

lewis 1年前 (2024-03-31) 阅读数 7 #技术
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 添加方法注解
@Desensitization
public 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"
}
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门