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 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.*.*.*" * MaskingUtil.masking("192.168.1.1", MaskingUtil.DesensitizedType.IPV4)) = "192.*.*.*"
* </pre> * </pre>
* *
* @param str 字符串 * @param str 字符串
* @param maskingType 脱敏类型;可以脱敏用户id中文名身份证号座机号手机号地址电子邮件密码 * @param maskingType 脱敏类型;可以脱敏用户id中文名身份证号座机号手机号地址电子邮件密码
* @return 脱敏之后的字符串 * @return 脱敏之后的字符串
* @author dazer and neusoft and qiaomu * @author dazer and neusoft and qiaomu
@ -166,11 +174,37 @@ public class MaskingUtil {
case FIRST_MASK: case FIRST_MASK:
newStr = firstMask(String.valueOf(str)); newStr = firstMask(String.valueOf(str));
break; break;
case CLEAR_TO_EMPTY:
newStr = clear();
break;
case CLEAR_TO_NULL:
newStr = clearToNull();
break;
default: default:
} }
return newStr; 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 * 用户id不对外提供userId
* *
@ -342,7 +376,7 @@ public class MaskingUtil {
} }
final int length = bankCardNo.length(); 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 int midLength = length - 4 - endLength;
final StringBuilder buf = new StringBuilder(); final StringBuilder buf = new StringBuilder();

View File

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