diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index dde679c34..2d991a5be 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -3,7 +3,9 @@ package com.ruoyi.common.core.domain.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.ruoyi.common.annotation.Sensitive; import com.ruoyi.common.core.domain.BaseEntity; +import com.ruoyi.common.enums.SensitiveStrategy; import com.ruoyi.common.xss.Xss; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -65,6 +67,7 @@ public class SysUser extends BaseEntity { /** * 用户邮箱 */ + @Sensitive(strategy = SensitiveStrategy.EMAIL) @ApiModelProperty(value = "用户邮箱") @Email(message = "邮箱格式不正确") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") @@ -73,6 +76,7 @@ public class SysUser extends BaseEntity { /** * 手机号码 */ + @Sensitive(strategy = SensitiveStrategy.PHONE) @ApiModelProperty(value = "手机号码") private String phonenumber; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java index 5f9bf72f8..f667173c6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java @@ -1,31 +1,48 @@ package com.ruoyi.common.enums; import cn.hutool.core.util.DesensitizedUtil; +import lombok.AllArgsConstructor; + import java.util.function.Function; /** * 脱敏策略 - * @author Yjoioooo + * + * @author Yjoioooo + * @version 3.6.0 */ +@AllArgsConstructor public enum SensitiveStrategy { - /** 身份证脱敏 */ + /** + * 身份证脱敏 + */ ID_CARD(s -> DesensitizedUtil.idCardNum(s, 3, 4)), - /** 手机号脱敏 */ + /** + * 手机号脱敏 + */ PHONE(DesensitizedUtil::mobilePhone), - /** 地址脱敏 */ - ADDRESS(s -> DesensitizedUtil.address(s, 8)); + /** + * 地址脱敏 + */ + ADDRESS(s -> DesensitizedUtil.address(s, 8)), + + /** + * 邮箱脱敏 + */ + EMAIL(DesensitizedUtil::email), + + /** + * 银行卡 + */ + BANK_CARD(DesensitizedUtil::bankCard); //可自行添加其他脱敏策略 private final Function desensitizer; - SensitiveStrategy(Function desensitizer) { - this.desensitizer = desensitizer; - } - public Function desensitizer() { return desensitizer; } diff --git a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java index 24587477b..3c6d23ecb 100644 --- a/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java +++ b/ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java @@ -34,9 +34,11 @@ public class TestSensitiveController extends BaseController { @GetMapping("/test") public AjaxResult test() { TestSensitive testSensitive = new TestSensitive() - .setIdCard("3333199910101212") - .setPhone("18888888888") - .setAddress("北京市朝阳区某某四合院1203室"); + .setIdCard("210397198608215431") + .setPhone("17640125371") + .setAddress("北京市朝阳区某某四合院1203室") + .setEmail("17640125371@163.com") + .setBankCard("6226456952351452853"); return AjaxResult.success(testSensitive); } @@ -62,6 +64,18 @@ public class TestSensitiveController extends BaseController { @Sensitive(strategy = SensitiveStrategy.ADDRESS) private String address; + /** + * 邮箱 + */ + @Sensitive(strategy = SensitiveStrategy.EMAIL) + private String email; + + /** + * 银行卡 + */ + @Sensitive(strategy = SensitiveStrategy.BANK_CARD) + private String bankCard; + } }