Fix the issue that api gateway handler of AWS does not honor the encrypted body data.

Resolves #382
This commit is contained in:
Kane Zhu
2019-06-28 17:37:27 +08:00
committed by Oleg Zhurakousky
parent 1cf42f95f6
commit 1de8526b7a
2 changed files with 20 additions and 3 deletions

View File

@@ -16,6 +16,7 @@
package org.springframework.cloud.function.adapter.aws;
import java.util.Base64;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -72,6 +73,18 @@ public class SpringBootApiGatewayRequestHandlerTests {
.isEqualTo(200);
assertThat(((APIGatewayProxyResponseEvent) output).getBody())
.isEqualTo("{\"value\":\"FOO\"}");
APIGatewayProxyRequestEvent bodyEncryptedRequest = new APIGatewayProxyRequestEvent();
bodyEncryptedRequest.setBody(
Base64.getEncoder().encodeToString("{\"value\":\"foo\"}".getBytes()));
bodyEncryptedRequest.setIsBase64Encoded(true);
output = this.handler.handleRequest(bodyEncryptedRequest, null);
assertThat(output).isInstanceOf(APIGatewayProxyResponseEvent.class);
assertThat(((APIGatewayProxyResponseEvent) output).getStatusCode())
.isEqualTo(200);
assertThat(((APIGatewayProxyResponseEvent) output).getBody())
.isEqualTo("{\"value\":\"FOO\"}");
}
@Test