我想我找到了!:)
这个项目似乎完全符合我的要求: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 hereDefaultAWSCredentialsProviderChain 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();


