Ecology9鉴权

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

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

认证流程时序图

在这里插入图片描述

第一步、注册许可

说明

请求地址:

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

请求方式:post

请求头部参数(request headers):

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

返回参数说明

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

对应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):

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

返回参数说明

参数名类型说明
statusboolean响应状态。true:成功,false:失败
codeString响应码。0代表成功
msgString响应信息
msgShowTypeString信息显示类型。默认“none”
tokenString认证通过的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信息

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

返回参数说明

参数名类型说明
statusboolean响应状态。true:成功,false:失败
codeString响应码。0代表成功
msgString响应信息
msgShowTypeString信息显示类型。默认“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();
  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论

打赏作者

菜鸟-瓜瓜

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值