All Classes and Interfaces
Class
Description
脱敏策略
收货地址脱敏处理类
地址只显示到地区,不显示详细地址;我们要对个人信息增强保护
例子:北京市海淀区****
银行卡号脱敏
只留前四位和后四位
6227 0383 3938 3938 393 脱敏结果: 6227 **** **** ***8 393
脱敏策略工具类
1.提供常见的脱敏策略
2.主要供单独的字符串处理使用
用于标识为系统内置的注解实现方式
二代身份证号脱敏:
公司开户银行联号
前四位明文,后面脱敏
用于自定义策略生效条件的注解
返回真条件
执行上下文接口
脱敏的执行上下文
默认脱敏处理类
邮箱脱敏策略
脱敏规则:
保留前三位,中间隐藏4位 其他正常显示
如果对象中属性为另外一个对象(集合),则可以使用这个注解指定
1.
默认的上下文过滤器
手机号脱敏处理类
18233583070 脱敏后: 182****3030
中文名称脱敏策略:
不脱敏
对json内的key_value进行脱敏/过滤
密码的脱敏策略:
直接返回 null
签约协议号脱敏方式
19031317273364059018
签约协议号脱敏格式为前6位后6位保留明文,中间脱敏
手机号脱敏
脱敏规则:180****1120
隐私数据加解密
脱敏接口
系统中内置的策略映射
注解和实现之间映射
数据脱敏,具体如下:
1.数据库级别脱敏加密
SensitiveResultSetHandler 解密脱敏
SensitiveStatementHandler 脱敏加密
2.访问请求级别加解密
RequestBodyAdvice 解密脱敏
ResponseBodyAdvice 脱敏加密
标注在字段上,用以说明字段上那些类型需要脱敏
脱敏后,插件在写请求后对数据脱敏后存在数据库,对读请求不拦截
设计的考虑:
本来想过将生效条件单独抽离为一个注解,这样可以达到条件注解的复用
但是有一个缺点,当指定多个策略时,条件的注解就会太宽泛,无法保证精细到每一个策略生效的场景
平衡的方式:
在 Strategy 注解中,可以指定策略 默认是全部,如果指定,则只针对其中的某个策略生效
过滤词及一些简单处理
脱敏策略注解
脱敏策略
DFA(Deterministic Finite Automaton 确定有穷自动机)
DFA单词树(以下简称单词树),常用于在某大段文字中快速查找某几个关键词是否存在
单词树使用group区分不同的关键字集合,不同的分组可以共享树枝,避免重复建树
单词树使用树状结构表示一组单词