版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、供应商业务系统对接测试指南对接环境简介供应链统一服务平台作为外部用户统一入口和外部数据集成中心,通过提供标准化的服务接口,为方便第三方更快速,更高效的集成到平台,现已搭建完成模拟测试环境,模拟环境信息如下:用户名密码要加密,调用要对请求体进行sign签名,相关介绍请仔细阅读此文件。签名规则使用的是HmacSHA256加密。下面流程图中描述有误 请以HmacSHA256 为准注:测试用户名密码及对接环境相关,以邮件回复的为准对接流程图Postman模拟请求测试请求流程示例:图中地址栏为示例地址,请求地址获取access_token时,请将地址替换为 HYPERLINK 02:4170/api/W
2、ZGYL/scp-supplier-erp/auth/get_access_token http:/*/api/WZGYL/scp-supplier-erp/auth/get_access_token,在请求其他接口服务时,也请将地址替换为服务请求地址:http:/*/api/WZGYL/scp-supplier-erp + 服务相对地址,请参考文档开头服务地址示例上图中body 中的账户密码并未加密,不能直接请求获取token,所以在获取access_token时 请求体body 中的账户密码请使用流程中经过加密的账户密码,然后用加密过后的账户密码 去进行sign 计算,并将sign放在请求
3、头header 中Token和请求参数签名设置:在请求其他接口服务时,也请将地址替换为服务请求地址:http:/*/api/WZGYL/scp-supplier-erp + 服务相对地址,请参考文档开头服务地址示例按照流程填写header内容请求参数签名代码示例s签名密钥:testKey签名流程:签名java代码示例public class Test public static void main(String args) throws IOException String str = n + username:admin,n + password:aaa,n + aa:1,2,5,6,n +
4、 bb:n + aa:bb,n + aaa:1n + ,n + int:1,n + doube:1.2,n + boolen:truen + ; /清除换行符 str = Ppile(trn).matcher(str).replaceAll(); /jaskson解析 ObjectMapper OBJECT_MAPPER = new ObjectMapper(); /转成map Map jsonNode = OBJECT_MAPPER.readValue(str, Map.class); /排序 OBJECT_MAPPER.configure(SerializationFeature.ORDE
5、R_MAP_ENTRIES_BY_KEYS, true); /生成json String string = OBJECT_MAPPER.writeValueAsString(jsonNode); /签名密钥 String signKey = testKey; /HmacSHA265 加密 String encode = DigestUtil.hmacDegist(DigestUtil.HmacSHA256, signKey.getBytes(), string).toBase64(); System.out.println(encode); 关于自动排序,各大JSON框架都有实现,自行适配Hm
6、acSHA256加密示例:public static String hmacDegist(String algorithm, byte key, String data) try /还原密钥,因为密钥是以byte形式为消息传递算法所拥有 SecretKey secretKey = new SecretKeySpec(key, algorithm); /实例化Mac Mac mac = Mac.getInstance(secretKey.getAlgorithm(), BC); /初始化Mac mac.init(secretKey); /执行消息摘要处理 byte result = mac.do
7、Final(data.getBytes(StandardCharsets.UTF_8); /加密后的字符 String string = new String(java.util.Base64.getEncoder().encode(result), StandardCharsets.UTF_8); return string; catch (Exception e) throw new SecurityException(e); Bouncycastle Maven坐标 org.bouncycastle bcprov-jdk15on 1.55RSA非对称加密代码示例公钥:MIGfMA0GCS
8、qGSIb3DQEBAQUAA4GNADCBiQKBgQCVfisoOLrHQTZcAoQgKs36C0tOA4Kn6O6mYTxtBntO9dH/F+qYYXkNw8YJe2qDVIECeZSjgIZvsqItui9sJYNDAlIwW8QUguLjzrP/uJs9XjuniUvvDEEyTDBUOqUUr8164RUgGjt/7GhD5/EPnmir0hnji4bsP3bZX7QK6uOhUwIDAQABJava代码示例:public static void main(String args) throws UnsupportedEncodingException, NoSuchAlgor
9、ithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException String publicKey = 公钥; String testStr = 待加密的字符; byte data = testStr.getBytes(Charset.forName(utf-8); byte keyBytes = Base64Utils.decode(publicKey); X509EncodedKeySpec x
10、509KeySpec = new X509EncodedKeySpec(keyBytes); KeyFactory keyFactory = KeyFactory.getInstance(RSA); PublicKey key = keyFactory.generatePublic(x509KeySpec); Cipher cipher = Cipher.getInstance(RSA/ECB/PKCS1Padding); cipher.init(Cipher.ENCRYPT_MODE, key); byte result = doFinal(cipher, data, 128-11); /加
11、密后的字符 String string = new String(java.util.Base64.getEncoder().encode(result), StandardCharsets.UTF_8); System.out.println(string);private static byte doFinal(Cipher cipher, byte data, int key_len) throws BadPaddingException, IllegalBlockSizeException int inputLen = data.length, offset = 0; byte tmp
12、; ByteArrayOutputStream out = new ByteArrayOutputStream(getTmpArrayLength(inputLen); while (inputLen 0) tmp = cipher.doFinal(data, offset, Math.min(key_len, inputLen); out.write(tmp, 0, tmp.length); offset += key_len; inputLen -= key_len; return out.toByteArray();private static int getTmpArrayLength(int L) int S = 128; while (S L) S = 1; return S; 对接注意事项、获取acces_token时,使用的用户名和密码需要是加密之后的用户名和密码,加密代码参考文档中“RSA非对称加密代码示例”部分,并且还需要将加密过后的用户名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锅炉dcs控制系统课程设计
- 2024融资融券合同要点解读
- 城市广场设计与建设方案
- 认识维生素教学课程设计
- 华中师范大学《国家治理之道》2021-2022学年第一学期期末试卷
- 电器传感器课程设计
- 化工企业安全生产管理方案
- 豆丁网c语言课程设计
- 育婴师上岗协议书
- 2023年国考中国贸促会公务员考试真题
- 我的应许之地:以色列的荣耀与悲情
- 农村寄宿制高中生心理健康现状及对策研究 论文
- 宾馆酒店标准化-安全管理人员任命书
- DBJ51-T 196-2022 四川省智慧工地建设技术标准
- 义务教育英语课程标准2022年英文版
- 可靠性的基本概念演示
- 工程建设标准强制性条文电力工程部分
- 从局部到整体:5G系统观-概要版-vivo通信研究院
- 无人机校企合作协议
- 《百团大战》历史课件
- 八年级上册道德及法治非选择题专项训练
评论
0/150
提交评论