Class Builder

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

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

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
     
    static enum 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    全局处理
    static final String
    请求解密
    static final String
    不做任何处理
    static final String
    响应加密
    static final String
    不做任何处理
    static final String
    数据安全
    static final String
    数据脱敏
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    是否包含敏感词
    static boolean
    是否包含敏感词
    static List<String>
    查找敏感词,返回找到的所有敏感词
    static List<String>
    getFindedAllSensitive(Object bean, boolean isDensityMatch, boolean isGreedMatch)
    查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]
    static List<String>
    查找敏感词,返回找到的所有敏感词
    static List<String>
    getFindedAllSensitive(String text, boolean isDensityMatch, boolean isGreedMatch)
    查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]
    static String
    查找敏感词,返回找到的第一个敏感词
    static String
    查找敏感词,返回找到的第一个敏感词
    static void
    init(String sensitiveWords, boolean isAsync)
    初始化敏感词树,使用逗号分隔每个单词
    static void
    init(String sensitiveWords, char separator, boolean isAsync)
    初始化敏感词树
    static void
    init(Collection<String> sensitiveWords)
    初始化敏感词树
    static void
    init(Collection<String> sensitiveWords, boolean isAsync)
    初始化敏感词树
    static boolean
     
    static String
    json(Object object)
    返回脱敏后的对象 json null 对象,返回字符串 "null"
    static <T> T
    on(Object object)
    每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
    static <T> T
    on(Object object, boolean clone)
    每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
    static <T> T
    on(Object object, Annotation annotation)
    每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
    static <T> T
    on(Object object, Annotation annotation, boolean clone)
    每次都创建一个新的对象,避免线程问题 可以使用 ThreadLocal 简单优化
    static void
    setCharFilter(org.aoju.bus.core.lang.Filter<Character> charFilter)
    设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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:
      isAsync - 是否异步初始化
      sensitiveWords - 敏感词列表
    • init

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

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

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

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

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

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

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

      public static String getFindedFirstSensitive(Object obj)
      查找敏感词,返回找到的第一个敏感词
      Parameters:
      obj - 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:
      敏感词