【问题标题】:How to generate AWS signature from JMeter?如何从 JMeter 生成 AWS 签名?
【发布时间】:2019-02-06 15:54:40
【问题描述】:

这是我在 JSR223 预处理器中的代码。

import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import java.security.InvalidKeyException
import java.security.MessageDigest
import groovy.json.JsonSlurper
import java.text.SimpleDateFormat

static byte[] HmacSHA256(String data, byte[] key) throws Exception {
String algorithm="HmacSHA256";
Mac mac = Mac.getInstance(algorithm);
mac.init(new SecretKeySpec(key, algorithm));
return mac.doFinal(data.getBytes("UTF8"));

}

static byte[] getSignatureKey(String key, String dateStamp, String regionName, String serviceName) throws Exception {
byte[] kSecret = ("AWS4" + key).getBytes("UTF8");
byte[] kDate = HmacSHA256(dateStamp, kSecret);
byte[] kRegion = HmacSHA256(regionName, kDate);
byte[] kService = HmacSHA256(serviceName, kRegion);
byte[] kSigning = HmacSHA256("aws4_request", kService);       
return kSigning;    

}

函数 getSignatureKey 的示例参数值是(这些我将作为变量传递给 JSR223 预处理器的参数部分)

key = eC6hEyRSTXMzsG6+juOObz8LbXb36iEYW7PPN1MJ
dateStamp = 20190123T083434Z
regionName = us-west-2
serviceName = test-mlp-us-west-2-4023179c-7708-4c5e-a831-28259b8a8872.s3.us-west-2.amazonaws.com

此代码不起作用,并且未生成 AWS 签名。

这是我需要获取的示例签名值

Signature=2a6092ec4ff49dc9j3b92d436635a57f312753kcc9f553ce1718b9b1594c4362

1.这段代码有什么问题? 2.如何将AWS签名分配给变量并在JMeter中使用?

【问题讨论】:

    标签: amazon-web-services jmeter


    【解决方案1】:

    如果“此代码不起作用”,您应该做的第一件事是查看jmeter.log file - 如果 Groovy 脚本失败,它将包含有关失败的确切原因和原因以及一些修复提示的信息。

    我还认为您应该根据请求详细信息(URL、参数、标头等)生成签名

    StringToSign =
        Algorithm + \n +
        RequestDateTime + \n +
        CredentialScope + \n +
        HashedCanonicalRequest
    

    Create a String to Sign for Signature Version 4

    带有示例的整个过程在How to Handle Dynamic AWS SigV4 in JMeter for API Testing 中进行了描述,您可以用作参考的测试计划在GitHub repo 中提供。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-29
      • 2021-09-07
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2019-03-11
      相关资源
      最近更新 更多