add 增加邮箱与银行卡脱敏策略 并应用到 SysUser

This commit is contained in:
疯狂的狮子li 2021-12-28 12:03:00 +08:00
parent 51b19fcff4
commit 45e6accd2a
3 changed files with 47 additions and 12 deletions

View File

@ -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;

View File

@ -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
* @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;
}

View File

@ -34,9 +34,11 @@ public class TestSensitiveController extends BaseController {
@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 @@ 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;
}
}