Skip to content

Commit 9098e3e

Browse files
committed
Fixed bug with multipart form field name and file name being inverted and added unit test (#258)
1 parent 4032d14 commit 9098e3e

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -709,8 +709,8 @@ private Map<String, Part> getMultipartFormParametersMap() {
709709
for (FileItem item : items) {
710710
String fileName = FilenameUtils.getName(item.getName());
711711
AwsProxyRequestPart newPart = new AwsProxyRequestPart(item.get());
712-
newPart.setName(fileName);
713-
newPart.setSubmittedFileName(item.getFieldName());
712+
newPart.setName(item.getFieldName());
713+
newPart.setSubmittedFileName(fileName);
714714
newPart.setContentType(item.getContentType());
715715
newPart.setSize(item.getSize());
716716
item.getHeaders().getHeaderNames().forEachRemaining(h -> {

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import org.apache.commons.io.IOUtils;
88
import org.apache.http.HttpEntity;
9+
import org.apache.http.entity.ContentType;
910
import org.apache.http.entity.mime.MultipartEntityBuilder;
1011
import org.junit.Test;
1112

@@ -31,6 +32,7 @@ public class AwsProxyHttpServletRequestFormTest {
3132
private static final String PART_KEY_2 = "test2";
3233
private static final String PART_VALUE_2 = "value2";
3334
private static final String FILE_KEY = "file_upload_1";
35+
private static final String FILE_NAME = "testImage.jpg";
3436

3537
private static final String ENCODED_VALUE = "test123a%3D1%262@3";
3638

@@ -46,7 +48,7 @@ public class AwsProxyHttpServletRequestFormTest {
4648
private static final HttpEntity MULTIPART_BINARY_DATA = MultipartEntityBuilder.create()
4749
.addTextBody(PART_KEY_1, PART_VALUE_1)
4850
.addTextBody(PART_KEY_2, PART_VALUE_2)
49-
.addBinaryBody(FILE_KEY, FILE_BYTES)
51+
.addBinaryBody(FILE_KEY, FILE_BYTES, ContentType.IMAGE_JPEG, FILE_NAME)
5052
.build();
5153
private static final String ENCODED_FORM_ENTITY = PART_KEY_1 + "=" + ENCODED_VALUE + "&" + PART_KEY_2 + "=" + PART_VALUE_2;
5254

@@ -99,6 +101,8 @@ public void multipart_getParts_binary() {
99101
assertEquals(3, request.getParts().size());
100102
assertNotNull(request.getPart(FILE_KEY));
101103
assertEquals(FILE_SIZE, request.getPart(FILE_KEY).getSize());
104+
assertEquals(FILE_KEY, request.getPart(FILE_KEY).getName());
105+
assertEquals(FILE_NAME, request.getPart(FILE_KEY).getSubmittedFileName());
102106
assertEquals(PART_VALUE_1, IOUtils.toString(request.getPart(PART_KEY_1).getInputStream()));
103107
assertEquals(PART_VALUE_2, IOUtils.toString(request.getPart(PART_KEY_2).getInputStream()));
104108
} catch (IOException | ServletException e) {

0 commit comments

Comments
 (0)