簡體   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