From c07aa97d15fc36b429de1b47cd07761098a4b893 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 18 May 2021 16:33:04 +0200 Subject: [PATCH] Ensure user set headers in API Gateway are properly propagated to message headers --- .../function/adapter/aws/AWSLambdaUtils.java | 8 ++ .../function-sample-aws-custom-bean/pom.xml | 92 ++++--------------- 2 files changed, 25 insertions(+), 75 deletions(-) diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java index 4fb5bbf30..ea18f27a8 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java @@ -121,6 +121,12 @@ final class AWSLambdaUtils { messageBuilder = MessageBuilder.withPayload(body).copyHeaders(requestMap); } } + + Object providedHeaders = requestMap.remove("headers"); + if (providedHeaders != null && providedHeaders instanceof Map) { + messageBuilder.removeHeader("headers"); + messageBuilder.copyHeaders((Map) providedHeaders); + } } else if (request instanceof Iterable) { messageBuilder = MessageBuilder.withPayload(request); @@ -131,6 +137,8 @@ final class AWSLambdaUtils { if (awsContext != null) { messageBuilder.setHeader("aws-context", awsContext); } + logger.info("Incoming request headers: " + headers); + return messageBuilder.copyHeaders(headers).build(); } diff --git a/spring-cloud-function-samples/function-sample-aws-custom-bean/pom.xml b/spring-cloud-function-samples/function-sample-aws-custom-bean/pom.xml index 31a3e3ade..80ba3e4fd 100644 --- a/spring-cloud-function-samples/function-sample-aws-custom-bean/pom.xml +++ b/spring-cloud-function-samples/function-sample-aws-custom-bean/pom.xml @@ -45,17 +45,17 @@ spring-boot-starter-test test - - org.awaitility - awaitility - test - - - org.testcontainers - testcontainers - 1.14.3 - test - + + + + + + + + + + + @@ -74,11 +74,11 @@ maven-surefire-plugin - - - com/example/ContainerTests.java - - + + + + + org.apache.maven.plugins @@ -148,63 +148,5 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +