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


theme: Chinese-red

1、简介

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

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

2、优点

易集成: 只需引入starter包,简单到无需任何初始化配置;

灵活: 具体到方法级;

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

自动化: 支持深度脱敏,自动寻找返回值中嵌套对象包含的需脱敏的属性

3、最新版本

1.0.3-release

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

6、demo

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"
}

8、其他开源项目

9、版权

Apache License 2.0

10、更新日志

  • V1.0.0

基础版

  • V1.0.1

支持复杂对象,多层嵌套属性自动脱敏

  • V1.0.2

优化包引用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值