diff --git a/aws-serverless-java-container-core/pom.xml b/aws-serverless-java-container-core/pom.xml
index 096d79a07..dde46f996 100644
--- a/aws-serverless-java-container-core/pom.xml
+++ b/aws-serverless-java-container-core/pom.xml
@@ -6,12 +6,12 @@
AWS Serverless Java container support - Core
Allows Java applications written for a servlet container to run in AWS Lambda
https://aws.amazon.com/lambda
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless
aws-serverless-java-container
- 2.0.2
+ 2.0.4-SNAPSHOT
..
@@ -60,7 +60,7 @@
org.springframework.security
spring-security-web
- 6.2.4
+ 6.2.5
test
diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
index 17d04a57c..fe514e65d 100644
--- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
+++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java
@@ -437,8 +437,10 @@ public String getRemoteAddr() {
if (request.getRequestContext() == null || request.getRequestContext().getIdentity() == null) {
return "127.0.0.1";
}
- if (request.getRequestContext().getElb() != null) {
- return request.getHeaders().get(CLIENT_IP_HEADER);
+ if (request.getRequestSource().equals(RequestSource.ALB)) {
+ return Objects.nonNull(request.getHeaders()) ?
+ request.getHeaders().get(CLIENT_IP_HEADER) :
+ request.getMultiValueHeaders().getFirst(CLIENT_IP_HEADER);
}
return request.getRequestContext().getIdentity().getSourceIp();
}
@@ -446,14 +448,16 @@ public String getRemoteAddr() {
@Override
public String getRemoteHost() {
- if (Objects.nonNull(request.getRequestContext().getElb())) {
- String hostHeader = request.getHeaders().get(HttpHeaders.HOST);
-
- // the host header has the form host:port, so we split the string to get the host part
- return Arrays.asList(hostHeader.split(":")).get(0);
+ String hostHeader;
+ if (request.getRequestSource().equals(RequestSource.ALB)) {
+ hostHeader = Objects.nonNull(request.getHeaders()) ?
+ request.getHeaders().get(HttpHeaders.HOST) :
+ request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
+ } else {
+ hostHeader = request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
}
-
- return request.getMultiValueHeaders().getFirst(HttpHeaders.HOST);
+ // the host header has the form host:port, so we split the string to get the host part
+ return Arrays.asList(hostHeader.split(":")).get(0);
}
@@ -483,8 +487,11 @@ public RequestDispatcher getRequestDispatcher(String s) {
@Override
public int getRemotePort() {
- if (Objects.nonNull(request.getRequestContext().getElb())) {
- String portHeader = request.getHeaders().get(PORT_HEADER_NAME);
+ if (request.getRequestSource().equals(RequestSource.ALB)) {
+ String portHeader;
+ portHeader = Objects.nonNull(request.getHeaders()) ?
+ request.getHeaders().get(PORT_HEADER_NAME) :
+ request.getMultiValueHeaders().getFirst(PORT_HEADER_NAME);
if (Objects.nonNull(portHeader)) {
return Integer.parseInt(portHeader);
}
diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
index 45c38843e..4edcf5241 100644
--- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
+++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestTest.java
@@ -652,10 +652,11 @@ void serverName_albHostHeader_returnsHostHeader() {
}
@Test
- void getRemoteHost_albHostHeader_returnsHostHeader() {
+ void getRemoteHost_albHostHeader_singleValue_returnsHostHeader() {
initAwsProxyHttpServletRequestTest("ALB");
AwsProxyRequest proxyReq = new AwsProxyRequestBuilder("/test", "GET")
.alb().build();
+ proxyReq.setMultiValueHeaders(null);
proxyReq.getHeaders().put(HttpHeaders.HOST, "testapi.us-east-1.elb.amazonaws.com");
HttpServletRequest servletRequest = new AwsProxyHttpServletRequest(proxyReq, null, null);
@@ -663,6 +664,19 @@ void getRemoteHost_albHostHeader_returnsHostHeader() {
assertEquals("testapi.us-east-1.elb.amazonaws.com", host);
}
+ @Test
+ void getRemoteHost_albHostHeader_multiValue_returnsHostHeader() {
+ initAwsProxyHttpServletRequestTest("ALB");
+ AwsProxyRequest proxyReq = new AwsProxyRequestBuilder("/test", "GET")
+ .header(HttpHeaders.HOST, "testapi.us-east-1.elb.amazonaws.com")
+ .alb().build();
+ proxyReq.setHeaders(null);
+ HttpServletRequest servletRequest = new AwsProxyHttpServletRequest(proxyReq, null, null);
+
+ String host = servletRequest.getRemoteHost();
+ assertEquals("testapi.us-east-1.elb.amazonaws.com", host);
+ }
+
private AwsProxyRequestBuilder getRequestWithHeaders() {
return new AwsProxyRequestBuilder("/hello", "GET")
.header(CUSTOM_HEADER_KEY, CUSTOM_HEADER_VALUE)
diff --git a/aws-serverless-java-container-jersey/pom.xml b/aws-serverless-java-container-jersey/pom.xml
index cf3446a56..7c0d7a08d 100644
--- a/aws-serverless-java-container-jersey/pom.xml
+++ b/aws-serverless-java-container-jersey/pom.xml
@@ -6,12 +6,12 @@
AWS Serverless Java container support - Jersey implementation
Allows Java applications written for Jersey to run in AWS Lambda
https://aws.amazon.com/lambda
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless
aws-serverless-java-container
- 2.0.2
+ 2.0.4-SNAPSHOT
..
@@ -24,7 +24,7 @@
com.amazonaws.serverless
aws-serverless-java-container-core
- 2.0.2
+ 2.0.4-SNAPSHOT
com.fasterxml.jackson.core
@@ -35,7 +35,7 @@
com.amazonaws.serverless
aws-serverless-java-container-core
- 2.0.2
+ 2.0.4-SNAPSHOT
tests
test-jar
test
diff --git a/aws-serverless-java-container-spring/pom.xml b/aws-serverless-java-container-spring/pom.xml
index 7a1e41c1b..3d311c088 100644
--- a/aws-serverless-java-container-spring/pom.xml
+++ b/aws-serverless-java-container-spring/pom.xml
@@ -6,18 +6,18 @@
AWS Serverless Java container support - Spring implementation
Allows Java applications written for the Spring framework to run in AWS Lambda
https://aws.amazon.com/lambda
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless
aws-serverless-java-container
- 2.0.2
+ 2.0.4-SNAPSHOT
..
- 6.1.8
- 6.2.4
+ 6.1.10
+ 6.2.5
@@ -25,12 +25,12 @@
com.amazonaws.serverless
aws-serverless-java-container-core
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless
aws-serverless-java-container-core
- 2.0.2
+ 2.0.4-SNAPSHOT
tests
test-jar
test
diff --git a/aws-serverless-java-container-springboot3/pom.xml b/aws-serverless-java-container-springboot3/pom.xml
index d04b91a99..9d6985896 100644
--- a/aws-serverless-java-container-springboot3/pom.xml
+++ b/aws-serverless-java-container-springboot3/pom.xml
@@ -3,7 +3,7 @@
aws-serverless-java-container
com.amazonaws.serverless
- 2.0.2
+ 2.0.4-SNAPSHOT
4.0.0
@@ -12,12 +12,12 @@
AWS Serverless Java container support - SpringBoot 3 implementation
Allows Java applications written for SpringBoot 3 to run in AWS Lambda
https://aws.amazon.com/lambda
- 2.0.2
+ 2.0.4-SNAPSHOT
- 6.1.8
- 3.2.6
- 6.2.4
+ 6.1.10
+ 3.2.7
+ 6.2.5
@@ -30,12 +30,12 @@
com.amazonaws.serverless
aws-serverless-java-container-core
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless
aws-serverless-java-container-core
- 2.0.2
+ 2.0.4-SNAPSHOT
tests
test-jar
test
diff --git a/aws-serverless-java-container-struts/pom.xml b/aws-serverless-java-container-struts/pom.xml
index 0ce204cad..e6e4f4840 100644
--- a/aws-serverless-java-container-struts/pom.xml
+++ b/aws-serverless-java-container-struts/pom.xml
@@ -6,12 +6,12 @@
AWS Serverless Java container support - Struts implementation
Allows Java applications written for the Struts framework to run in AWS Lambda
https://aws.amazon.com/lambda
- 2.1.0-SNAPSHOT
+ 2.0.3-SNAPSHOT
com.amazonaws.serverless
aws-serverless-java-container
- 2.1.0-SNAPSHOT
+ 2.0.3-SNAPSHOT
diff --git a/aws-serverless-jersey-archetype/pom.xml b/aws-serverless-jersey-archetype/pom.xml
index bdd7de91d..e6257ec5a 100644
--- a/aws-serverless-jersey-archetype/pom.xml
+++ b/aws-serverless-jersey-archetype/pom.xml
@@ -4,17 +4,17 @@
com.amazonaws.serverless
aws-serverless-java-container
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless.archetypes
aws-serverless-jersey-archetype
- 2.0.2
+ 2.0.4-SNAPSHOT
maven-archetype
https://github.com/aws/serverless-java-container.git
- aws-serverless-java-container-2.0.2
+ HEAD
diff --git a/aws-serverless-spring-archetype/pom.xml b/aws-serverless-spring-archetype/pom.xml
index 39ca9e580..a4712ac71 100644
--- a/aws-serverless-spring-archetype/pom.xml
+++ b/aws-serverless-spring-archetype/pom.xml
@@ -4,17 +4,17 @@
com.amazonaws.serverless
aws-serverless-java-container
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless.archetypes
aws-serverless-spring-archetype
- 2.0.2
+ 2.0.4-SNAPSHOT
maven-archetype
https://github.com/aws/serverless-java-container.git
- aws-serverless-java-container-2.0.2
+ HEAD
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
index 12d909c92..e444282e7 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/build.gradle
@@ -7,8 +7,8 @@ repositories {
dependencies {
implementation (
- 'org.springframework:spring-webmvc:6.1.8',
- 'org.springframework:spring-context:6.1.8',
+ 'org.springframework:spring-webmvc:6.1.10',
+ 'org.springframework:spring-context:6.1.10',
'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
'org.apache.logging.log4j:log4j-core:2.23.1',
'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
index 89035bf68..32f947cf9 100644
--- a/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-spring-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
1.8
1.8
- 6.1.8
+ 6.1.10
5.10.2
2.23.1
diff --git a/aws-serverless-springboot3-archetype/pom.xml b/aws-serverless-springboot3-archetype/pom.xml
index 845f1b622..0f3f5cf61 100644
--- a/aws-serverless-springboot3-archetype/pom.xml
+++ b/aws-serverless-springboot3-archetype/pom.xml
@@ -4,17 +4,17 @@
com.amazonaws.serverless
aws-serverless-java-container
- 2.0.2
+ 2.0.4-SNAPSHOT
com.amazonaws.serverless.archetypes
aws-serverless-springboot3-archetype
- 2.0.2
+ 2.0.4-SNAPSHOT
maven-archetype
https://github.com/aws/serverless-java-container.git
- aws-serverless-java-container-2.0.2
+ HEAD
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
index 816ebaec2..c3ebe5648 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/build.gradle
@@ -9,7 +9,7 @@ repositories {
dependencies {
implementation (
- 'org.springframework.boot:spring-boot-starter-web:3.2.6',
+ 'org.springframework.boot:spring-boot-starter-web:3.2.7',
'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
)
diff --git a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
index 2396c0ef1..1cfcd517d 100644
--- a/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/aws-serverless-springboot3-archetype/src/main/resources/archetype-resources/pom.xml
@@ -16,7 +16,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.6
+ 3.2.7
diff --git a/aws-serverless-struts-archetype/pom.xml b/aws-serverless-struts-archetype/pom.xml
index 27c530046..9886b62e5 100644
--- a/aws-serverless-struts-archetype/pom.xml
+++ b/aws-serverless-struts-archetype/pom.xml
@@ -4,12 +4,12 @@
com.amazonaws.serverless
aws-serverless-java-container
- 2.1.0-SNAPSHOT
+ 2.0.3-SNAPSHOT
com.amazonaws.serverless.archetypes
aws-serverless-struts-archetype
- 2.1.0-SNAPSHOT
+ 2.0.3-SNAPSHOT
maven-archetype
diff --git a/pom.xml b/pom.xml
index b5f3a0b01..ecbaa56c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.amazonaws.serverless
aws-serverless-java-container
pom
- 2.0.2
+ 2.0.4-SNAPSHOT
AWS Serverless Java container
A Java framework to run Spring, Spring Boot, Jersey, Spark, and Struts applications inside AWS Lambda
https://github.com/aws/serverless-java-container
@@ -37,8 +37,8 @@
https://github.com/aws/serverless-java-container
scm:git:https://github.com/aws/serverless-java-container.git
- aws-serverless-java-container-2.0.2
-
+ HEAD
+
diff --git a/samples/spring/pet-store/build.gradle b/samples/spring/pet-store/build.gradle
index 394581eab..9ef83f2d7 100644
--- a/samples/spring/pet-store/build.gradle
+++ b/samples/spring/pet-store/build.gradle
@@ -7,8 +7,8 @@ repositories {
dependencies {
implementation (
- 'org.springframework:spring-webmvc:6.1.8',
- 'org.springframework:spring-context:6.1.8',
+ 'org.springframework:spring-webmvc:6.1.10',
+ 'org.springframework:spring-context:6.1.10',
'com.amazonaws.serverless:aws-serverless-java-container-spring:[2.0-SNAPSHOT,)',
'org.apache.logging.log4j:log4j-core:2.23.1',
'org.apache.logging.log4j:log4j-api:2.23.1',
diff --git a/samples/spring/pet-store/pom.xml b/samples/spring/pet-store/pom.xml
index 6aae5db92..8f8992973 100644
--- a/samples/spring/pet-store/pom.xml
+++ b/samples/spring/pet-store/pom.xml
@@ -24,7 +24,7 @@
- 6.1.8
+ 6.1.10
2.23.1
17
17
diff --git a/samples/springboot3/alt-pet-store/build.gradle b/samples/springboot3/alt-pet-store/build.gradle
index 9a4987860..852d0bb5a 100644
--- a/samples/springboot3/alt-pet-store/build.gradle
+++ b/samples/springboot3/alt-pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
dependencies {
implementation (
- implementation('org.springframework.boot:spring-boot-starter-web:3.2.6') {
+ implementation('org.springframework.boot:spring-boot-starter-web:3.2.7') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
},
'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/alt-pet-store/pom.xml b/samples/springboot3/alt-pet-store/pom.xml
index c2cf4da03..44963d5ad 100644
--- a/samples/springboot3/alt-pet-store/pom.xml
+++ b/samples/springboot3/alt-pet-store/pom.xml
@@ -13,7 +13,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.6
+ 3.2.7
diff --git a/samples/springboot3/graphql-pet-store/pom.xml b/samples/springboot3/graphql-pet-store/pom.xml
index 581b13bd8..d8ebb5e1e 100644
--- a/samples/springboot3/graphql-pet-store/pom.xml
+++ b/samples/springboot3/graphql-pet-store/pom.xml
@@ -13,7 +13,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.6
+ 3.2.7
diff --git a/samples/springboot3/pet-store-native/pom.xml b/samples/springboot3/pet-store-native/pom.xml
index d7a6fb449..441c0aa9e 100644
--- a/samples/springboot3/pet-store-native/pom.xml
+++ b/samples/springboot3/pet-store-native/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.6
+ 3.2.7
com.amazonaws.serverless.sample
diff --git a/samples/springboot3/pet-store/build.gradle b/samples/springboot3/pet-store/build.gradle
index 9a4987860..852d0bb5a 100644
--- a/samples/springboot3/pet-store/build.gradle
+++ b/samples/springboot3/pet-store/build.gradle
@@ -9,7 +9,7 @@ repositories {
dependencies {
implementation (
- implementation('org.springframework.boot:spring-boot-starter-web:3.2.6') {
+ implementation('org.springframework.boot:spring-boot-starter-web:3.2.7') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat'
},
'com.amazonaws.serverless:aws-serverless-java-container-springboot3:[2.0-SNAPSHOT,)',
diff --git a/samples/springboot3/pet-store/pom.xml b/samples/springboot3/pet-store/pom.xml
index 2340a3664..28688c8e8 100644
--- a/samples/springboot3/pet-store/pom.xml
+++ b/samples/springboot3/pet-store/pom.xml
@@ -13,7 +13,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.6
+ 3.2.7