页面树结构
转至元数据结尾
转至元数据起始

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 数据需要先自行加密处理。

  • 无标签