DesensitizedUtil增加清空策略

This commit is contained in:
Looly 2023-08-02 11:26:49 +08:00
parent cbcd31910b
commit a0eeefefe9
3 changed files with 41 additions and 4 deletions

View File

@ -6,6 +6,7 @@
### 🐣新特性
* 【core 】 NumberUtil.nullToZero增加重载issue#I7PPD2@Github
* 【core 】 DesensitizedUtil增加清空策略issue#I7PUJ2@Github
### 🐞Bug修复

View File

@ -78,7 +78,15 @@ public class DesensitizedUtil {
/**
* 定义了一个first_mask的规则只显示第一个字符
*/
FIRST_MASK
FIRST_MASK,
/**
* 清空为null
*/
CLEAR_TO_NULL,
/**
* 清空为""
*/
CLEAR_TO_EMPTY
}
/**
@ -148,11 +156,37 @@ public class DesensitizedUtil {
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
*
@ -329,7 +363,7 @@ public class DesensitizedUtil {
}
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

@ -14,6 +14,8 @@ public class DesensitizedUtilTest {
@Test
public void desensitizedTest() {
Assert.assertEquals("0", DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.USER_ID));
Assert.assertEquals("", DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.CLEAR_TO_EMPTY));
Assert.assertNull(DesensitizedUtil.desensitized("100", DesensitizedUtil.DesensitizedType.CLEAR_TO_NULL));
Assert.assertEquals("段**", DesensitizedUtil.desensitized("段正淳", DesensitizedUtil.DesensitizedType.CHINESE_NAME));
Assert.assertEquals("5***************1X", DesensitizedUtil.desensitized("51343620000320711X", DesensitizedUtil.DesensitizedType.ID_CARD));
Assert.assertEquals("0915*****79", DesensitizedUtil.desensitized("09157518479", DesensitizedUtil.DesensitizedType.FIXED_PHONE));