升级说明¶
WeBASE-Sign升级的兼容性说明,请结合WeBASE-Sign Changelog进行阅读
WeBASE-Sign升级的必须步骤:
- 备份已有文件或数据,下载新的安装包(可参考安装包下载)
- 使用新的安装包,并将旧版本yml已有配置添加到新版本yml中;可通过
diff aFile bFile命令对比新旧yml的差异 - 查看签名服务升级文档中对应版本是否需要修改数据表,若不需要升级则跳过
3.1 若需要升级数据表,首先使用
mysqldump命令备份数据库 3.2 按照升级文档指引,操作数据表 bash stop.sh && bash start.sh重启
各个版本的具体修改可参考下文
v1.5.3¶
- 新增私钥托管与签名服务Docker镜像,
webasepro/webase-sign:v1.5.3
v1.5.0¶
- 支持导出私钥,增加配置项
supportPrivateKeyTransfer: true,接口支持私钥传输(aes加密后的私钥),配置项为false时不支持导出 - jar包升级:mysql-connector-java:8.0.22、bcprov-jdk15on:1.67
- 修复ECDSA签名结果序列化bug
v1.4.3¶
- 增加数据签名接口
v1.4.2¶
- 使用新版java-sdk替换web3sdk
v1.4.0¶
- 增加返回 WeBASE-Sign 版本号接口
- 默认Aes加密模式由
ECB改为更安全的CBC,同时支持在yml配置中选择CBC与ECB
v1.3.2¶
- 移除Fastjson,替换为Jackson 2.11.0。
- 升级web3sdk为2.4.1,并升级springboot等依赖项
v1.3.0¶
私钥数据表字段更新¶
- WeBASE-Sign的tb_user表新增两个字段: 私钥用户的唯一业务编号
signUserId,和私钥用户所属应用编号appId
升级操作说明
如果WeBASE-Sign中有已存在的私钥数据,则在tb_user表新增列sign_user_id和app_id后,还需要赋予其初始值,且sign_user_id需赋予唯一值
登陆mysql后,进入到相应database中,以webasesign的database为例;
mysql -uroot -p123456
// mysql 命令行
mysql> use webasesign;
// 在tb_user中添加列
mysql> alter table tb_user add column sign_user_id varchar(64) not null;
mysql> alter table tb_user add column app_id varchar(64) not null;
// 添加sign_user_id的唯一约束
mysql> alter table tb_user add unique key unique_uuid (sign_user_id);
如果仅将WeBASE-Node-Manager的私钥迁移至WeBASE-Sign中,则无需进行下面的sign_user_id赋值操作
如果有已存在的user的sign_user_id和app_id赋值,sign_user_id赋予唯一的随机值即可;
// app_id可以设置为一样,也可根据user具体标签赋予不同的app_id值
mysql> update tb_user set app_id = 'app_default' where 1=1;
// 为每个user的sign_user_id设置一个唯一的随机值
mysql> update tb_user set sign_user_id = '{yourValue}'' where user_id = '{yourUserId}';
API更新¶
- WeBASE-Sign的新建私钥接口
/user/newUser需传入signUserId,appId才可新建用户,且可以传值encryptType指定该用户的类型为ECDSA或国密算法;
值得注意的是,现在WeBASE-Sign新建私钥用户后,不再返回privateKey字段,即私钥不离开WeBASE-Sign数据库。
- WeBASE-Sign的数据签名接口
/sign传参修改,原用的userId改为传入signUserId,签名时会根据user的类型选择ECDSA或国密算法进行签名; - WeBASE-Sign新增停用用户的接口
/user(DELETE),可根据signUserId停用相应用户;