MaskingUtil增加清空策略

This commit is contained in:
Looly 2023-08-02 11:27:04 +08:00
parent d0453f6776
commit 8585ecc1eb
2 changed files with 41 additions and 4 deletions

View File

@ -96,7 +96,15 @@ public class MaskingUtil {
/**
* 定义了一个first_mask的规则只显示第一个字符
*/
FIRST_MASK
FIRST_MASK,
/**
* 清空为null
*/
CLEAR_TO_NULL,
/**
* 清空为""
*/
CLEAR_TO_EMPTY
}
/**
@ -115,7 +123,7 @@ public class MaskingUtil {
* MaskingUtil.masking("192.168.1.1", MaskingUtil.DesensitizedType.IPV4)) = "192.*.*.*"
* </pre>
*
* @param str 字符串
* @param str 字符串
* @param maskingType 脱敏类型;可以脱敏用户id中文名身份证号座机号手机号地址电子邮件密码
* @return 脱敏之后的字符串
* @author dazer and neusoft and qiaomu
@ -166,11 +174,37 @@ public class MaskingUtil {
case FIRST_MASK:
newStr = firstMask(String.valueOf(str));
break;
case CLEAR_TO_EMPTY:
newStr = clear();
break;
case CLEAR_TO_NULL:
newStr = clearToNull();
break;
default:
}
return newStr;
}
/**
* 清空为空字符串
*
* @return 清空后的值
* @since 5.8.22
*/
public static String clear() {
return StrUtil.EMPTY;
}
/**
* 清空为{@code null}
*
* @return 清空后的值(null)
* @since 5.8.22
*/
public static String clearToNull() {
return null;
}
/**
* 用户id不对外提供userId
*
@ -342,7 +376,7 @@ public class MaskingUtil {
}
final int length = bankCardNo.length();
final int endLength= length % 4 == 0 ? 4 : length % 4;
final int endLength = length % 4 == 0 ? 4 : length % 4;
final int midLength = length - 4 - endLength;
final StringBuilder buf = new StringBuilder();

View File

@ -25,6 +25,9 @@ public class MaskingUtilTest {
@Test
public void maskingTest() {
Assertions.assertEquals("", MaskingUtil.masking("100", MaskingUtil.MaskingType.CLEAR_TO_EMPTY));
Assertions.assertNull(MaskingUtil.masking("100", MaskingUtil.MaskingType.CLEAR_TO_NULL));
Assertions.assertEquals("0", MaskingUtil.masking("100", MaskingUtil.MaskingType.USER_ID));
Assertions.assertEquals("段**", MaskingUtil.masking("段正淳", MaskingUtil.MaskingType.CHINESE_NAME));
Assertions.assertEquals("5***************1X", MaskingUtil.masking("51343620000320711X", MaskingUtil.MaskingType.ID_CARD));
@ -103,7 +106,7 @@ public class MaskingUtilTest {
}
@Test
public void bankCardTest(){
public void bankCardTest() {
Assertions.assertNull(MaskingUtil.bankCard(null));
Assertions.assertEquals("", MaskingUtil.bankCard(""));
Assertions.assertEquals("1234 **** **** **** **** 9", MaskingUtil.bankCard("1234 2222 3333 4444 6789 9"));