Package org.aoju.bus.sensitive
Class Builder
java.lang.Object
org.aoju.bus.sensitive.Builder
脱敏策略工具类
1.提供常见的脱敏策略
2.主要供单独的字符串处理使用
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancontainsSensitive(Object object) 是否包含敏感词static booleancontainsSensitive(String text) 是否包含敏感词getFindedAllSensitive(Object bean) 查找敏感词,返回找到的所有敏感词getFindedAllSensitive(Object bean, boolean isDensityMatch, boolean isGreedMatch) 查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]getFindedAllSensitive(String text) 查找敏感词,返回找到的所有敏感词getFindedAllSensitive(String text, boolean isDensityMatch, boolean isGreedMatch) 查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]static StringgetFindedFirstSensitive(Object object) 查找敏感词,返回找到的第一个敏感词static String查找敏感词,返回找到的第一个敏感词static void初始化敏感词树,使用逗号分隔每个单词static void初始化敏感词树static voidinit(Collection<String> sensitiveWords) 初始化敏感词树static voidinit(Collection<String> sensitiveWords, boolean isAsync) 初始化敏感词树static booleanisInited()static String返回脱敏后的对象 json null 对象,返回字符串 "null"static <T> T每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化static <T> T每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化static <T> Ton(Object object, Annotation annotation) 每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化static <T> Ton(Object object, Annotation annotation, boolean clone) 每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化static voidsetCharFilter(Predicate<Character> charFilter) 设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配
-
Field Details
-
ALL
-
SENS
-
SAFE
-
IN
-
OUT
-
NOTHING
-
OVERALL
-
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
on
每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化- Type Parameters:
T- 泛型- Parameters:
object- 原始对象- Returns:
- 脱敏后的对象
-
on
每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化- Type Parameters:
T- 泛型- Parameters:
object- 原始对象clone- 是否克隆- Returns:
- 脱敏后的对象
-
on
每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化- Type Parameters:
T- 泛型- Parameters:
object- 原始对象annotation- 注解信息- Returns:
- 脱敏后的对象
-
json
-
on
每次都创建一个新的对象,避免线程问题 可以使用ThreadLocal简单优化- Type Parameters:
T- 泛型- Parameters:
object- 原始对象annotation- 注解信息clone- 是否克隆- Returns:
- 脱敏后的对象
-
isInited
public static boolean isInited()- Returns:
- 是否已经被初始化
-
init
初始化敏感词树- Parameters:
sensitiveWords- 敏感词列表isAsync- 是否异步初始化
-
init
初始化敏感词树- Parameters:
sensitiveWords- 敏感词列表
-
init
初始化敏感词树- Parameters:
sensitiveWords- 敏感词列表组成的字符串separator- 分隔符isAsync- 是否异步初始化
-
init
初始化敏感词树,使用逗号分隔每个单词- Parameters:
sensitiveWords- 敏感词列表组成的字符串isAsync- 是否异步初始化
-
setCharFilter
-
containsSensitive
-
containsSensitive
是否包含敏感词- Parameters:
object- bean,会被转为JSON字符串- Returns:
- 是否包含
-
getFindedFirstSensitive
-
getFindedFirstSensitive
-
getFindedAllSensitive
-
getFindedAllSensitive
-
getFindedAllSensitive
-
getFindedAllSensitive
public static List<String> getFindedAllSensitive(Object bean, boolean isDensityMatch, boolean isGreedMatch) 查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]- Parameters:
bean- 对象,会被转为JSONisDensityMatch- 是否使用密集匹配原则isGreedMatch- 是否使用贪婪匹配(最长匹配)原则- Returns:
- 敏感词
-