【问题标题】:Karate: Signing AWS HTTP requests & add the generated headers to the 'request headers'空手道:签署 AWS HTTP 请求并将生成的标头添加到“请求标头”
【发布时间】:2019-03-07 18:43:01
【问题描述】:

我们测试的内部 API 需要经过签名过程(即获取 AWS 签名)并在我们执行任何 CRUD 操作之前将签名的标头添加到“请求标头”。

可以通过 AWS-SDK 或使用类似 https://github.com/lucasweb78/aws-v4-signer-java 的方式对请求进行签名(如果我们的测试完全用 Java 编写)

在空手道 DSL 中实现这一目标的最佳方式是什么。请提出建议。

【问题讨论】:

    标签: amazon-iam karate


    【解决方案1】:

    阅读文档:https://github.com/intuit/karate#http-basic-authentication-example

    例如,这是您进行基本身份验证的方式:

    function fn(creds) {
      var temp = creds.username + ':' + creds.password;
      var Base64 = Java.type('java.util.Base64');
      var encoded = Base64.getEncoder().encodeToString(temp.bytes);
      return 'Basic ' + encoded;
    }
    

    这里的重点是您可以插入任何 Java 代码。您还可以查看 OAuth 示例以获得更多想法:https://github.com/intuit/karate/tree/master/karate-demo/src/test/java/demo/oauth

    另见:How to handle requests with signatures on karate tests?

    【讨论】:

    • 完美,我会看看@Peter 并回复你。
    • peter 我们尝试了上述获取AWS IAM凭证的方法,我们可以实现。问题是我们已经有很多我们想要重用的 spring bean,例如,在 apache HTTP 客户端上配置的自定义 AWS Signer。有没有办法在空手道中启动一个类似于黄瓜 CLI 的弹簧上下文(即 cucumber.api.cli.main)
    • 我的原始查询已得到答复,因此我将关闭它。如果我遇到其他问题,会提出新的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多