Skip to content

Commit 71126fa

Browse files
committed
MimeTypeUtils trims parameter names / values
Issue: SPR-16630
1 parent 9cc03fa commit 71126fa

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,8 @@ else if (ch == '"') {
288288
}
289289
int eqIndex = parameter.indexOf('=');
290290
if (eqIndex >= 0) {
291-
String attribute = parameter.substring(0, eqIndex);
292-
String value = parameter.substring(eqIndex + 1, parameter.length());
291+
String attribute = parameter.substring(0, eqIndex).trim();
292+
String value = parameter.substring(eqIndex + 1, parameter.length()).trim();
293293
parameters.put(attribute, value);
294294
}
295295
}

spring-core/src/test/java/org/springframework/util/MimeTypeTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,18 @@ public void parseMimeTypeSingleQuotedParameterValue() {
241241
assertEquals("'v>alue'", mimeType.getParameter("attr"));
242242
}
243243

244+
@Test // SPR-16630
245+
public void parseMimeTypeWithSpacesAroundEquals() {
246+
MimeType mimeType = MimeTypeUtils.parseMimeType("multipart/x-mixed-replace;boundary = --myboundary");
247+
assertEquals("--myboundary", mimeType.getParameter("boundary"));
248+
}
249+
250+
@Test // SPR-16630
251+
public void parseMimeTypeWithSpacesAroundEqualsAndQuotedValue() {
252+
MimeType mimeType = MimeTypeUtils.parseMimeType("text/plain; foo = \" bar \" ");
253+
assertEquals("\" bar \"", mimeType.getParameter("foo"));
254+
}
255+
244256
@Test(expected = InvalidMimeTypeException.class)
245257
public void parseMimeTypeIllegalQuotedParameterValue() {
246258
MimeTypeUtils.parseMimeType("audio/*;attr=\"");

0 commit comments

Comments
 (0)