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

2022-12-07 10:39:10 浏览数 (2)

1、简介

专注安全领域,实现内容脱敏展示,期望做到可灵活配置,灵活启用,并且最好内置丰富插件,支持手机号、邮箱、身份证号、住址、中文名、座机号、银行卡、自定义等多种类型的脱敏配置。

由此诞生了本控件:secure-ext-spring-boot-starter

2、优点

易集成: 只需引入starter包,添加{sensitive.enable}配置即可;

灵活: 具体到方法级;

内置丰富: 内置多种默认类型,且可根据自身需求,支持自定义脱敏规则

3、最新版本

1.0.0-release

4、使用步骤

4.1 引入依赖

代码语言:javascript复制
 <dependency>
      <groupId>io.gitee.chemors</groupId>
      <artifactId>secure-ext-spring-boot-starter</artifactId>
      <version>Lastest Version</version>
    </dependency>

4.2 开启脱敏注解

代码语言:javascript复制
sensitive:
  enable: true

4.3 添加注解

注意:

  • 方法注解表示该方法的返回值需要脱敏
  • 属性注解标识具体的脱敏规则
4.3.1 添加方法注解
代码语言:javascript复制
@Desensitization
public Obj test(){
// 业务逻辑,构建返回对象Obj
return Obj;
}
4.3.2 添加属性注解
代码语言:javascript复制
    @DesensitizationProp(value = SensitiveTypeEnum.CUSTOM,preLength = 1,sufLength = 5)
    private String name;

    @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 进行个性化定义)

6、demo

  • https://gitee.com/QuanZhanZhiLu/eboot

7、示例

7.1 后台数据

代码语言:javascript复制
@Desensitization
    public SensitiveEntity simpleData() {
        SensitiveEntity sensitiveEntity = new SensitiveEntity();
        sensitiveEntity.setId("1");
        sensitiveEntity.setName("樱木花道");
        sensitiveEntity.setMobile("15699996666");
        sensitiveEntity.setIdCard("101010200001010001");
        return sensitiveEntity;
    }

7.2 返回结果

代码语言:javascript复制
{
    "id":"1",
    "name":"樱***",
    "mobile":"156****6666",
    "idCard":"101010********0001"
}  

0 人点赞