Class Builder

java.lang.Object
org.miaixz.bus.sensitive.Builder

public final class Builder extends Object
脱敏策略工具类 1.提供常见的脱敏策略 2.主要供单独的字符串处理使用
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Constructor Details

    • Builder

      public Builder()
  • Method Details

    • on

      public static <T> T on(Object object)
      每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
      Type Parameters:
      T - 泛型
      Parameters:
      object - 原始对象
      Returns:
      脱敏后的对象
    • on

      public static <T> T on(Object object, boolean clone)
      每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
      Type Parameters:
      T - 泛型
      Parameters:
      object - 原始对象
      clone - 是否克隆
      Returns:
      脱敏后的对象
    • on

      public static <T> T on(Object object, Annotation annotation)
      每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
      Type Parameters:
      T - 泛型
      Parameters:
      object - 原始对象
      annotation - 注解信息
      Returns:
      脱敏后的对象
    • json

      public static String json(Object object)
      返回脱敏后的对象 json null 对象,返回字符串 "null"
      Parameters:
      object - 对象
      Returns:
      结果 json
    • on

      public static <T> T on(Object object, Annotation annotation, boolean clone)
      每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
      Type Parameters:
      T - 泛型
      Parameters:
      object - 原始对象
      annotation - 注解信息
      clone - 是否克隆
      Returns:
      脱敏后的对象
    • isInited

      public static boolean isInited()
      Returns:
      是否已经被初始化
    • init

      public static void init(Collection<String> sensitiveWords, boolean isAsync)
      初始化敏感词树
      Parameters:
      sensitiveWords - 敏感词列表
      isAsync - 是否异步初始化
    • init

      public static void init(Collection<String> sensitiveWords)
      初始化敏感词树
      Parameters:
      sensitiveWords - 敏感词列表
    • init

      public static void init(String sensitiveWords, String separator, boolean isAsync)
      初始化敏感词树
      Parameters:
      sensitiveWords - 敏感词列表组成的字符串
      separator - 分隔符
      isAsync - 是否异步初始化
    • init

      public static void init(String sensitiveWords, boolean isAsync)
      初始化敏感词树,使用逗号分隔每个单词
      Parameters:
      sensitiveWords - 敏感词列表组成的字符串
      isAsync - 是否异步初始化
    • setCharFilter

      public static void setCharFilter(Predicate<Character> charFilter)
      设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配
      Parameters:
      charFilter - 过滤函数
    • containsSensitive

      public static boolean containsSensitive(String text)
      是否包含敏感词
      Parameters:
      text - 文本
      Returns:
      是否包含
    • containsSensitive

      public static boolean containsSensitive(Object object)
      是否包含敏感词
      Parameters:
      object - bean,会被转为JSON字符串
      Returns:
      是否包含
    • getFindedFirstSensitive

      public static String getFindedFirstSensitive(String text)
      查找敏感词,返回找到的第一个敏感词
      Parameters:
      text - 文本
      Returns:
      敏感词
    • getFindedFirstSensitive

      public static String getFindedFirstSensitive(Object object)
      查找敏感词,返回找到的第一个敏感词
      Parameters:
      object - bean,会被转为JSON字符串
      Returns:
      敏感词
    • getFindedAllSensitive

      public static List<String> getFindedAllSensitive(String text)
      查找敏感词,返回找到的所有敏感词
      Parameters:
      text - 文本
      Returns:
      敏感词
    • getFindedAllSensitive

      public static List<String> getFindedAllSensitive(String text, boolean isDensityMatch, boolean isGreedMatch)
      查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]
      Parameters:
      text - 文本
      isDensityMatch - 是否使用密集匹配原则
      isGreedMatch - 是否使用贪婪匹配(最长匹配)原则
      Returns:
      敏感词
    • getFindedAllSensitive

      public static List<String> getFindedAllSensitive(Object bean)
      查找敏感词,返回找到的所有敏感词
      Parameters:
      bean - 对象,会被转为JSON
      Returns:
      敏感词
    • getFindedAllSensitive

      public static List<String> getFindedAllSensitive(Object bean, boolean isDensityMatch, boolean isGreedMatch)
      查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]
      Parameters:
      bean - 对象,会被转为JSON
      isDensityMatch - 是否使用密集匹配原则
      isGreedMatch - 是否使用贪婪匹配(最长匹配)原则
      Returns:
      敏感词