1、背景
用户表的手机号和邮箱,增加接口,可以让定制进行加密、解密操作
2、接口说明
2.1 gradle依赖
"smartbi:Smartbi-UserManager.Interface:${project.ext.SMARTBI_VERSION}",
2.2 接口定义说明
// smartbi.usermanager.IUserInfoCodec public interface IUserInfoCodec { /** * 解码, 入参code可为null */ default String decode(String code) { return code; } /** * 编码, 入参code可为null */ default String encode(String code) { return code; } }
2.3 注册电话号码自定义codec接口说明 (smartbi.usermanager.UserManagerModule)
/** * codec, 自定义 IUserInfoCodec 实现的实例 */ void setUserCellPhoneNumberCodec(IUserInfoCodec codec);
2.4 注册邮箱自定义codec接口说明 (smartbi.usermanager.UserManagerModule)
/** * codec, 自定义 IUserInfoCodec 实现的实例 */ void setUserEmailAddressCodec(IUserInfoCodec codec);
3、参考例子
// 自定义codec实现 class MyCodec implements IUserInfoCodec { @Override public String decode(String code) { BASE64Decoder base64Decoder = new BASE64Decoder(); byte[] bytes = base64Decoder.decodeBuffer(code); return new String(bytes); } @Override public String encode(String code) { BASE64Encoder base64Encoder = new BASE64Encoder(); return base64Encoder.encode(code.getBytes()); } } // 设置自定义实现 UserManagerModule.getInstance().setUserCellPhoneNumberCodec(new MyCodec()); UserManagerModule.getInstance().setUserEmailAddressCodec(new MyCodec());
4、使用说明
smartbi 默认不对电话号码和邮箱进行加解密处理,数据库存储默认时明文。如果项目需要对电话和邮箱进行解密存储, 可参考上述文档自定义加解密实现, 另外, 线上 t_user 表 c_cell_phone_number 和 c_email_addr 数据需要先自行加密处理。