🐎 优化脱敏工具,将脱敏注解拆分为三个,SimpleDesensitizationHandler 支持SPI 注入,正则和滑动类型脱敏处理,可简单使用注解定义,减少自定义类

This commit is contained in:
b2baccline
2021-01-23 16:43:17 +08:00
parent 9e8ba98de9
commit 7873848516
28 changed files with 435 additions and 330 deletions

View File

@@ -10,9 +10,8 @@ import com.hccake.ballcat.admin.oauth.util.SecurityUtils;
import com.hccake.ballcat.commom.log.access.handler.AccessLogHandler;
import com.hccake.ballcat.commom.log.constant.LogConstant;
import com.hccake.ballcat.commom.log.util.LogUtils;
import com.hccake.ballcat.common.core.desensite.DesensitizationHandler;
import com.hccake.ballcat.common.core.desensite.DesensitizationHandlerHolder;
import com.hccake.ballcat.common.core.desensite.DesensitizationTypeConstant;
import com.hccake.ballcat.common.core.desensite.enums.RegexDesensitizationTypeEnum;
import com.hccake.ballcat.common.core.desensite.handler.RegexDesensitizationHandler;
import com.hccake.ballcat.common.core.util.IPUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -53,8 +52,7 @@ public class AdminAccessLogHandler implements AccessLogHandler<AdminAccessLog> {
/**
* 脱敏处理器
*/
private final DesensitizationHandler desensitizationHandler = DesensitizationHandlerHolder.TYPE_MAPS
.get(DesensitizationTypeConstant.ENCRYPTED_PASSWORD);
private final RegexDesensitizationHandler regexDesensitizationHandler = new RegexDesensitizationHandler();
/**
* 生产一个日志
@@ -122,7 +120,9 @@ public class AdminAccessLogHandler implements AccessLogHandler<AdminAccessLog> {
for (String paramKey : needDesensitizeParams) {
String[] values = parameterMap.get(paramKey);
if (values != null && values.length != 0) {
parameterMap.put(paramKey, new String[] { desensitizationHandler.handle(values[0]) });
String value = regexDesensitizationHandler.handle(values[0],
RegexDesensitizationTypeEnum.ENCRYPTED_PASSWORD);
parameterMap.put(paramKey, new String[] { value });
}
}
params = objectMapper.writeValueAsString(parameterMap);

View File

@@ -1,7 +1,7 @@
package com.hccake.ballcat.admin.modules.sys.model.dto;
import com.hccake.ballcat.common.core.desensite.DesensitizationTypeConstant;
import com.hccake.ballcat.common.core.desensite.JsonDesensitize;
import com.hccake.ballcat.common.core.desensite.annotation.JsonRegexDesensitize;
import com.hccake.ballcat.common.core.desensite.enums.RegexDesensitizationTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -23,7 +23,7 @@ public class SysUserDTO {
/**
* 前端传入密码
*/
@JsonDesensitize(type = DesensitizationTypeConstant.ENCRYPTED_PASSWORD)
@JsonRegexDesensitize(type = RegexDesensitizationTypeEnum.ENCRYPTED_PASSWORD)
@ApiModelProperty(value = "前端传入密码")
private String pass;

View File

@@ -1,7 +1,7 @@
package com.hccake.ballcat.admin.modules.sys.model.dto;
import com.hccake.ballcat.common.core.desensite.DesensitizationTypeConstant;
import com.hccake.ballcat.common.core.desensite.JsonDesensitize;
import com.hccake.ballcat.common.core.desensite.annotation.JsonRegexDesensitize;
import com.hccake.ballcat.common.core.desensite.enums.RegexDesensitizationTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -20,7 +20,7 @@ public class SysUserPassDTO {
* 前端传入密码
*/
@NotBlank(message = "The password cannot be empty!")
@JsonDesensitize(type = DesensitizationTypeConstant.ENCRYPTED_PASSWORD)
@JsonRegexDesensitize(type = RegexDesensitizationTypeEnum.ENCRYPTED_PASSWORD)
@ApiModelProperty(value = "前端输入密码")
private String pass;
@@ -28,7 +28,7 @@ public class SysUserPassDTO {
* 前端确认密码
*/
@NotBlank(message = "The confirm password cannot be empty!")
@JsonDesensitize(type = DesensitizationTypeConstant.ENCRYPTED_PASSWORD)
@JsonRegexDesensitize(type = RegexDesensitizationTypeEnum.ENCRYPTED_PASSWORD)
@ApiModelProperty(value = "前端确认密码")
private String confirmPass;