use of software.amazon.awssdk.auth.signer.internal.BaseEventStreamAsyncAws4Signer.EVENT_STREAM_DATE in project aws-sdk-java-v2 by aws.
the class Aws4EventStreamSignerTest method generateTestVector.
TestVector generateTestVector() {
return new TestVector() {
List<String> requestBody = Lists.newArrayList("A", "B", "C");
@Override
public List<String> requestBody() {
return requestBody;
}
@Override
public SdkHttpFullRequest.Builder httpFullRequest() {
// Signing key: "29dc0a760fed568677d74136ad02d315a07d31b8f321f5c43350f284dac892c";
return SdkHttpFullRequest.builder().method(SdkHttpMethod.POST).putHeader("Host", "demo.us-east-1.amazonaws.com").putHeader("content-encoding", "application/vnd.amazon.eventstream").putHeader("x-amz-content-sha256", "STREAMING-AWS4-HMAC-SHA256-EVENTS").encodedPath("/streaming").protocol("https").host("demo.us-east-1.amazonaws.com");
}
@Override
public AsyncRequestBody requestBodyPublisher() {
List<ByteBuffer> bodyBytes = requestBody.stream().map(s -> ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8))).collect(Collectors.toList());
Publisher<ByteBuffer> bodyPublisher = Flowable.fromIterable(bodyBytes);
return AsyncRequestBody.fromPublisher(bodyPublisher);
}
@Override
public Flowable<Message> expectedMessagePublisher() {
Flowable<String> sigsHex = Flowable.just("7aabf85b765e6a4d0d500b6e968657b14726fa3e1eb7e839302728ffd77629a5", "f72aa9642f571d24a6e1ae42f10f073ad9448d8a028b6bcd82da081335adda02", "632af120435b57ec241d8bfbb12e496dfd5e2730a1a02ac0ab6eaa230ae02e9a", "c6f679ddb3af68f5e82f0cf6761244cb2338cf11e7d01a24130aea1b7c17e53e");
// The Last data frame is empty
Flowable<String> payloads = Flowable.fromIterable(requestBody).concatWith(Flowable.just(""));
return sigsHex.zipWith(payloads, new BiFunction<String, String, Message>() {
// The first Instant was used to sign the request
private int idx = 1;
@Override
public Message apply(String sig, String payload) throws Exception {
Map<String, HeaderValue> headers = new HashMap<>();
headers.put(EVENT_STREAM_DATE, HeaderValue.fromTimestamp(SIGNING_INSTANTS.get(idx++)));
headers.put(EVENT_STREAM_SIGNATURE, HeaderValue.fromByteArray(BinaryUtils.fromHex(sig)));
return new Message(headers, payload.getBytes(StandardCharsets.UTF_8));
}
});
}
};
}
Aggregations