数据脱敏
最后更新:2025-07-24 11:08:52
|
状态:未完成
//列名支持正则
//两种方式脱敏
//1.omit 显示指定位数 短文本适合 如把公司、联系人、地址列 显示部分内容
//2.替换关键字 长文本适合 如从正文中替换手机号
//两个作用范围
//1.ConfigTable全局生效
//2.ConfigStore针对当前查询生效
//两个阶段可执行
//1.ConfigTable ConfigStore在执行查询过程中执行
//2.DataSet DataRow在查询后执行 直接调用omit和replaceAll方法
ConfigTable.IS_AUTO_MASK_OMIT = true;
ConfigTable.MASK_OMIT_COLUMN = "NAME;.*DE"; //需要脱敏的列 多个以;分隔 注意不是,
ConfigTable.MASK_OMIT_VOL = 5; //先拆成不大于VOL长度的串 VOL大于1时有效
ConfigTable.MASK_OMIT_ELLIPSIS = "-"; //默认*
DataRow row = new DataRow();
row.put("NAME", "张三三三三");
row.put("CODE", "1830000");
ServiceProxy.insert("crm_user", row);
DataSet set = ServiceProxy.querys("crm_user");
System.out.println(set);
ConfigTable.IS_AUTO_MASK_OMIT = false;
ConfigTable.IS_AUTO_MASK_REPLACE = true;
//根据正则匹配需要脱敏的列 把183换成130如果不指定130则换成 MASK_REPLACE_REPLACEMENT
ConfigTable.MASK_REPLACE_REGEX = "183:130";
ConfigTable.MASK_REPLACE_REPLACEMENT = "000";
ConfigTable.MASK_REPLACE_COLUMN = ".*DE"; //需要脱敏的列 多个以;分隔 注意不是,
set = ServiceProxy.querys("crm_user");
System.out.println(set);
//只针对 当前查询 ConfigStore与ConfigTable有一样的属性
ConfigStore configs = new DefaultConfigStore();
configs.MASK_OMIT_COLUMN("NAME");
set = ServiceProxy.querys("crm_user", configs);
System.out.println(set);