Skip to content

Commit

Permalink
Merge branch '3.13.x' into 3.14.x
Browse files Browse the repository at this point in the history
  • Loading branch information
sdelamo committed Apr 11, 2023
2 parents b9d2aef + a9ed78c commit 63aa239
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -523,8 +523,12 @@ public AwsHeaders(@Nullable Headers multivalueHeaders, @Nullable SingleValueHead
if (CollectionUtils.isNotEmpty(singleValueHeaders)) {
for (String name : singleValueHeaders.keySet()) {
String headerName = HttpHeaderUtils.normalizeHttpHeaderCase(name);
String value = singleValueHeaders.get(headerName);
if (headers.containsKey(headerName) && headers.get(headerName).contains(value)) {
continue;
}
headers.computeIfAbsent(headerName, s -> new ArrayList<>());
headers.get(headerName).add(singleValueHeaders.get(headerName));
headers.get(headerName).add(value);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@ package io.micronaut.function.aws.proxy

import com.amazonaws.serverless.proxy.internal.jaxrs.AwsProxySecurityContext
import com.amazonaws.serverless.proxy.model.AwsProxyRequest
import com.amazonaws.serverless.proxy.model.ContainerConfig
import com.amazonaws.serverless.proxy.model.Headers
import com.amazonaws.serverless.proxy.model.SingleValueHeaders
import com.amazonaws.services.lambda.runtime.Context
import spock.lang.Specification

import javax.ws.rs.core.SecurityContext

class MicronautAwsProxyRequestSpec extends Specification {

void "MicronautAwsProxyRequest::isSecurityContextPresent does not throw NPE"() {
Expand All @@ -28,4 +34,22 @@ class MicronautAwsProxyRequestSpec extends Specification {
noExceptionThrown()
!isPresent
}

void multiAndSingleValueHeadersShouldBeMerged() {
given:
String headerName = "tenant"
String headerValue = "my-tenant"
AwsProxyRequest awsProxyRequest = new AwsProxyRequest();
awsProxyRequest.setHeaders(new SingleValueHeaders());
awsProxyRequest.getHeaders().put(headerName, headerValue);
awsProxyRequest.setMultiValueHeaders(new Headers());
awsProxyRequest.getMultiValueHeaders().put(headerName, Collections.singletonList(headerValue));

when:
MicronautAwsProxyRequest<?> result = new MicronautAwsProxyRequest<>("/",
awsProxyRequest, Mock(SecurityContext), Mock(Context), Mock(ContainerConfig));

then:
Arrays.asList(headerValue) == result.getHeaders().getAll(headerName)
}
}
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ fileupload = '0.0.5'
jetty = '9.4.50.v20221201'
logback-json-classic = '0.1.5'
managed-alexa-ask-sdk = "2.58.0"
managed-aws-java-sdk-v1 = '1.12.420'
managed-aws-java-sdk-v1 = '1.12.445'
managed-aws-java-sdk-v2 = '2.20.42'
managed-aws-lambda = '1.2.2'
managed-aws-lambda-events = '3.11.0'
Expand Down

0 comments on commit 63aa239

Please sign in to comment.