Skip to content

Commit 0288c48

Browse files
committed
form param names must be included in getParameterNames() (#340)
1 parent cab5817 commit 0288c48

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
import java.util.List;
4646
import java.util.Locale;
4747
import java.util.Map;
48+
import java.util.Set;
49+
import java.util.stream.Collectors;
50+
import java.util.stream.Stream;
4851

4952

5053
/**
@@ -360,11 +363,12 @@ public String getParameter(String s) {
360363

361364
@Override
362365
public Enumeration<String> getParameterNames() {
366+
Set<String> formParameterNames = getFormUrlEncodedParametersMap().keySet();
363367
if (request.getMultiValueQueryStringParameters() == null) {
364-
return Collections.emptyEnumeration();
368+
return Collections.enumeration(formParameterNames);
365369
}
366-
367-
return Collections.enumeration(request.getMultiValueQueryStringParameters().keySet());
370+
return Collections.enumeration(Stream.concat(formParameterNames.stream(),
371+
request.getMultiValueQueryStringParameters().keySet().stream()).collect(Collectors.toSet()));
368372
}
369373

370374

aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestFormTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.io.IOException;
1919
import java.nio.charset.Charset;
2020
import java.util.Base64;
21+
import java.util.Collections;
2122
import java.util.Map;
2223
import java.util.Random;
2324

@@ -123,6 +124,7 @@ public void postForm_getParamsBase64Encoded_expectAllParams() {
123124
assertNotNull(params);
124125
assertEquals(2, params.size());
125126
assertTrue(params.containsKey(PART_KEY_1));
127+
assertEquals(2, Collections.list(request.getParameterNames()).size());
126128
}
127129

128130
/**
@@ -140,5 +142,6 @@ public void postForm_emptyParamPresent() {
140142
assertNotNull(params);
141143
assertEquals(2, params.size());
142144
assertTrue(params.containsKey(PART_KEY_1));
145+
assertEquals(2, Collections.list(request.getParameterNames()).size());
143146
}
144147
}

0 commit comments

Comments
 (0)