【问题标题】:How to retrieve raw request contents before making a REST call in Karate DSL? [duplicate]如何在空手道 DSL 中进行 REST 调用之前检索原始请求内容? [复制]
【发布时间】:2020-11-06 04:01:14
【问题描述】:

我基本上是在尝试生成 AWS 签名以便将它们用于授权。我们有第三方 java 库 (uk.co.lucasweb.aws.v4.signer) 来生成这个 AWS 签名。使用 Java 互操作的概念,我将能够调用它们并检索签名。但是我必须在参数中传递所有请求详细信息(url、header、param)才能生成它。 (getSignature() 是使用指定库编写的自定义 java 方法)

getSignature() 方法的实现看起来像这样

   String contentSha256 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
    HttpRequest request = new HttpRequest("GET", new URI(URL));
    String signature = Signer.builder()
            .awsCredentials(new AwsCredentials(ACCESS_KEY, SECRET_KEY))
            .header("Host", "examplebucket.s3.amazonaws.com")
            .header("x-amz-date", "20130524T000000Z")
            .header("x-amz-content-sha256", contentSha256)
            .buildS3(request, contentSha256)
            .getSignature();

空手道 DSL:

* def awsUtils = Java.type('customJavaClasses.AWSUtils')
* url 'https://sit.ecom.com/atp-config-entity-dev'

场景:获取 AWS 签名

 Given path '/v1/atp-config-entity/config'
 And header wtr-correlation-id = '58f3de9b-6276-4f05-a78d-0a39c6044877'
 And header customer-id = '279809907'
 And header principal-id = '279809906'
 And header X-Amz-Date = '20200325T120000Z'
 And def requestPayload = read('request.json')
 And request requestPayload 

使用空手道 DSL 编写请求后,我需要一种方法来检索内容,以便我可以在参数中传递它们,如下所示

And def signature = awsUtils.getSignature(url, headers, params);
And header Authorization = signature
When method post
Then status 200

我知道在使用 karate.prevRequest 拨打电话后,我们有一项规定可以做到这一点。但是,在我们拨打电话之前,我们是否有任何规定可以检索原始请求数据。也参考了 oAuth2 和签名者文档,但找不到任何解决方案

【问题讨论】:

    标签: amazon-web-services oauth-2.0 karate


    【解决方案1】:

    你可以看看ExecutionHook是否给你一个方法,否则这可能是一个功能请求:https://stackoverflow.com/a/59080128/143475

    我们现在实际上正在重构代码 - 我同意这个用例很重要,所以我们可以考虑一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多