Ecology9鉴权

发布于:2023-02-08 ⋅ 阅读:(32) ⋅ 点赞:(0)

1、调用OA鉴权接口的过程

用于第三方系统调用OA鉴权接口时做为一个参考

认证流程时序图

在这里插入图片描述

第一步、注册许可

说明

请求地址:

​ http://泛微服务地址/api/ec/dev/auth/regist

请求方式:post

请求头部参数(request headers):

参数名 必选 类型 说明
appid string 许可证号码,泛微提供
cpk string 异构系统公钥(无用,但是必传,可传123

返回参数说明

参数名 类型 说明
status boolean 响应状态。true:成功,false:失败
code String 响应码。0代表成功
errcode String 错误码。0代表成功(可忽略)
msg String 响应信息
msgShowType String 信息显示类型。默认“none”
secrit(或secret) String 秘钥信息。注意此处secrit单词拼写错误(原词为:secret),请使用 secrit获取结果
spk String 系统公钥信息

对应JAVA请求示例代码

String publicKey = "123";
//调用ECOLOGY系统接口进行注册
String data = HttpRequest.post(address + "/api/ec/dev/auth/regist")
  .header("appid", APPID)
  .header("cpk", publicKey)
  .timeout(2000)
  .execute().body()
  Map<String, Object> datas = JSONUtil.parseObj(data);

工具调用截图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQP6CMAA-1659059892383)(E9鉴权.assets/image-20220706095650169.png)]

第二步、获取token

请求URL:

  • http://泛微服务地址/api/ec/dev/auth/applytoken

请求方式:

  • POST

请求头部参数(request headers):

参数名 必选 类型 说明
appid string 许可证号码,泛微提供(同第一步)
time int token过期时间(单位:秒,不传默认1800秒,也就是30分钟过期)
secret string 通过spk(第一步得到)对secret(第一步得到)进行RSA加密后的密文

返回参数说明

参数名 类型 说明
status boolean 响应状态。true:成功,false:失败
code String 响应码。0代表成功
msg String 响应信息
msgShowType String 信息显示类型。默认“none”
token String 认证通过的token信息。(默认30分钟内有效)

JAVA secret 加密示例:

// 公钥加密,所以RSA对象私钥为null
RSA rsa = new RSA(null, spk);
//对秘钥secret进行加密
//encryptSecret 加密后的密钥
String encryptSecret 加密后的密钥 = rsa.encryptBase64(secret, CharsetUtil.CHARSET_UTF_8, KeyType.PublicKey);

在线加密

https://the-x.cn/Cryptography/Rsa.aspx

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ugH0KEEl-1659059892384)(E9鉴权.assets/image-20220706101938472.png)]

对应JAVA示例代码:

//调用ECOLOGY系统接口进行注册
String data = HttpRequest.post(address + "/api/ec/dev/auth/applytoken")
  .header("appid", APPID)
  .header("secret", encryptSecret)
  .header("time", "5*1000")
  .execute().body();
Map<String, Object> datas = JSONUtil.parseObj(data);

工具调用截图

在这里插入图片描述

第三步、调用业务接口

以创建OA流程业务接口为例:

请求URL:

  • http://泛微服务地址/api/workflow/paService/doCreateRequest

请求方式:

  • GET | POST | PUT | DELETE

  • Content-Type application/x-www-form-urlencoded;charset=utf-8

    请求头headers信息

参数名 必选 类型 说明
appid String 泛微系统提供,同第一步
token String 第二步获取到的token的值
userid String 泛微系统的人员主键通过第一步注册许可时返回spk公钥进行加密生成的密文
Content-Type string POST请求必须设置Context-Type为”application/x-www-form-urlencoded; charset=utf-8”

返回参数说明

参数名 类型 说明
status boolean 响应状态。true:成功,false:失败
code String 响应码。0代表成功
msg String 响应信息
msgShowType String 信息显示类型。默认“none”

示例代码如下:

 RSA rsa = new RSA(null,spk);
//createrid  为泛微系统的人员主键,必须传入人员主键,由于OA的流程创建用户校验,且会做为OA流程的创建人
String encryptUserid = rsa.encryptBase64(createrid, CharsetUtil.CHARSET_UTF_8, KeyType.PublicKey);
//调用ECOLOGY系统接口
String data = HttpRequest.post(address + "/api/workflow/paService/doCreateRequest")
  .header("appid", APPID)//泛微系统提供,同第一步
  .header("token", token)//第二步获取到的token的值
  .header("userid", encryptUserid)//加密后的createrid
  .header("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
  //map为业务数据参数
  .form(map)
  .execute().body();

网站公告

欢迎关注微信公众号 关注公众号领取新人福利

今日签到

点亮在社区的每一天
去签到