繁体   English   中英

在JMeter中生成AWS签名

[英]Generating AWS signature in JMeter

我正在测试使用JMeter工具托管在AWS基础设施上的应用程序,其中触发的每个请求都需要与请求一起传递AWS签名标头,以在AWS的IAM级别上验证请求。 我拥有与在AWS控制台中创建的用户角色有关的访问权和密钥。

JMeter中是否有任何可用的beanshell代码可帮助使用JMeter中每个请求的访问和密钥生成AWS签名?

该代码可在AWS文档网站上找到,例如,请参阅使用Java派生签名密钥 这是最少的清单,以防万一:

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;
}

请注意, 从JMeter 3.1版开始,建议使用JSR223 Elements和Groovy语言进行脚本编写,因为它更现代(支持所有Java SDK新功能),在“普通” Java SDK之上有很多“语法糖”与Beanshell,JavaScript和其他可用选项相比,Groovy的性能要好得多。 有关更多详细信息,请参见Apache Groovy-为什么和如何使用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM