当前位置: 首页 > 面试题库 >

使用Apache HttpComponents Client签署AWS HTTP请求

俞飞鸣
2023-03-14
问题内容

我正在尝试向受IAM访问策略保护的AWS Elasticsearch域发出HTTP请求。我需要签署这些请求,以使它们得到AWS的授权。我正在使用Jest,后者又使用Apache HttpComponents
Client

这似乎是一个常见的用例,我想知道是否存在某种可以在Apache HttpComponents Client之上使用的库来签署所有请求。


问题答案:

我想我找到了!:)

这个项目似乎完全符合我的要求:aws-signing-request-
interceptor
,描述为
Apache客户端的请求拦截器,用于对AWS的请求进行签名。最初是为了通过Jest客户端支持AWS的Elasticsearch Service而创建的。”

编辑:我分叉了项目,以满足我的需要(Java 7,临时STS凭据),并且效果很好。

这是用法示例(此处没有STS临时凭据):

String region = "us-east-1";
String service = "es";
String url = "???"; // put the AWS ElasticSearch endpoint here

DefaultAWSCredentialsProviderChain awsCredentialsProvider = new DefaultAWSCredentialsProviderChain();
final AWSSigner awsSigner = new AWSSigner(awsCredentialsProvider, region, service, () -> new LocalDateTime(DateTimeZone.UTC));

JestClientFactory factory = new JestClientFactory() {
    @Override
    protected HttpClientBuilder configureHttpClient(HttpClientBuilder builder) {
        builder.addInterceptorLast(new AWSSigningRequestInterceptor(awsSigner));
        return builder;
    }
};
factory.setHttpClientConfig(new HttpClientConfig.Builder(url)
        .multiThreaded(true)
        .build());
JestClient client = factory.getObject();


 类似资料:
  • 问题内容: 我正在尝试使用Python访问poloniex.com(一种加密货币交易所)上的交易API。为此,我必须遵循以下规定: 所有对交易API的调用都通过HTTP POST发送到https://poloniex.com/tradingApi,并且必须包含以下标头: 密钥-您的API密钥。 签名-根据HMAC-SHA512方法,由您的键的“秘密”对查询的POST数据进行签名。 此外,所有查询都

  • 我想使用TLS相互身份验证在Go中制造的API上对一个客户端进行身份验证。我已经创建了一个证书颁发机构,假设Bob有一个他想与客户机一起使用的密钥对。Bob创建了一个证书请求,并希望我验证他的证书,以便在API上进行授权和身份验证。 我已使用此方法创建了我的证书颁发机构: Bob使用它来创建他的证书和证书请求: 我想实现这一点,但在围棋: 但如果朱莉娅现在想登录怎么办?她将必须创建一个CSR,发送

  • 问题内容: 我找不到任何描述如何使用BC签署CSR的代码/文档。作为输入,我有一个CSR作为字节数组,并且想要获取PEM和/或DER格式的证书。 我已经走了这么远 我很难弄清楚从证书生成器获取的内容以PEM或DER格式存储。 还是我一起走错了路? 问题答案: 好的…我一直在寻找做同样的事情,对于我的一生,我不知道该怎么做。所有的API都在谈论生成密钥对,然后生成证书,而不是如何签署CSR。不知何故

  • 我试图在C#中使用Bouncy Castle实现ECDSA签名算法对证书请求(CSR)的延迟签名。到目前为止,我已经设法用RSA实现了这一点,但没有用ECDSA实现。我使用来自Bouncy Castle的Pkcs10CertificationRequestDelaySigned类。 验证签名时失败的测试代码片段(完整代码如下所示): DelayCsrProvider将接收到的签名插入CSR,从而创

  • 我正在尝试使用谷歌办公套件设置SAML。但是我得到了这个错误 我已经配置断言应该在我的SP中签名。我可以在其他IDP(如onelogin、okta)中看到签署响应断言的选项。该配置适用于其他IDP,但看不到在谷歌办公套件SAML中唱响应断言的选项。 在Gsuite中,我只能看到签名响应的选项,而不能看到断言。 如何正确设置此设置? SP元数据如下所示:

  • 但是,为了签署请求,openSSL提供了两个工具:ca和X509。然而,这些都不允许使用SHA256。根据官方文档,ca只支持md5、sha1和MDC2。x509仅支持md2、md5、sha1、MDC2。 谢谢你。