更新时间:2024-04-26 GMT+08:00
分享

请求签名流程

第三方应用对华为云API的访问需经过签名认证。

签名前的准备

  1. 下载API网关签名工具。

    请单击此处下载后,解压下载的压缩包。

  2. 创建java工程,将解压出来的jar引用到依赖路径中。

签名过程

  1. 创建用于签名的请求com.cloud.sdk.DefaultRequest(JAVA)。
  2. 设置DefaultRequest的目标API URL、HTTPS方法、内容等信息。
  3. 对DefaultRequest进行签名:
    1. 调用SignerFactory.getSigner(String serviceName, String regionName)获取一个签名工具实现的实例。
    2. 调用Signer.sign(Request<?> request, Credentials credentials)对步骤1创建的请求进行签名。

      以下代码展示了这个步骤:

      //选用签名算法,对请求进行签名   
       Signer signer = SignerFactory.getSigner(serviceName, region);   
       //对请求进行签名,request会发生改变   
       signer.sign(request, new BasicCredentials(this.ak, this.sk));
  4. 把上步中签名产生的request转换为一个适合发送的请求,并将签名后request中的header信息放入新的request中。
  5. 以Apache HttpClient为例,需要把DefaultRequest转换为HttpRequestBase,把签名后的DefaultRequest的header信息放入HttpRequestBase中。

相关文档