From 45e6accd2a58d4412fc38e27844c278f2273236b Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 28 十二月 2021 12:03:00 +0800
Subject: [PATCH] add 增加邮箱与银行卡脱敏策略 并应用到 SysUser
---
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/TestSensitiveController.java | 20 +++++++++++++++++---
ruoyi-common/src/main/java/com/ruoyi/common/enums/SensitiveStrategy.java | 35 ++++++++++++++++++++++++++---------
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java | 4 ++++
3 files changed, 47 insertions(+), 12 deletions(-)
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 dde679c..2d991a5 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 @@
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 @@
/**
* 鐢ㄦ埛閭
*/
+ @Sensitive(strategy = SensitiveStrategy.EMAIL)
@ApiModelProperty(value = "鐢ㄦ埛閭")
@Email(message = "閭鏍煎紡涓嶆纭�")
@Size(min = 0, max = 50, message = "閭闀垮害涓嶈兘瓒呰繃50涓瓧绗�")
@@ -73,6 +76,7 @@
/**
* 鎵嬫満鍙风爜
*/
+ @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 5f9bf72..f667173 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,30 +1,47 @@
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<String, String> desensitizer;
-
- SensitiveStrategy(Function<String, String> desensitizer) {
- this.desensitizer = desensitizer;
- }
public Function<String, String> 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 2458747..3c6d23e 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 @@
@GetMapping("/test")
public AjaxResult<TestSensitive> 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 @@
@Sensitive(strategy = SensitiveStrategy.ADDRESS)
private String address;
+ /**
+ * 閭
+ */
+ @Sensitive(strategy = SensitiveStrategy.EMAIL)
+ private String email;
+
+ /**
+ * 閾惰鍗�
+ */
+ @Sensitive(strategy = SensitiveStrategy.BANK_CARD)
+ private String bankCard;
+
}
}
--
Gitblit v1.9.3