提交 7cdc5348 编写于 作者: M Maxim Valyanskiy 提交者: Rossen Stoyanchev

Allow parsing of media types with single-quotes

Previously MediaType could only parse double-quoted parameters without
raising an IllegalArgumentException. Now parameters can also be
single-quoted.

Issue: SPR-8917
上级 ab4952a9
...@@ -376,7 +376,12 @@ public class MediaType implements Comparable<MediaType> { ...@@ -376,7 +376,12 @@ public class MediaType implements Comparable<MediaType> {
} }
private boolean isQuotedString(String s) { private boolean isQuotedString(String s) {
return s.length() > 1 && s.startsWith("\"") && s.endsWith("\"") ; if (s.length() < 2) {
return false;
}
else {
return ((s.startsWith("\"") && s.endsWith("\"")) || (s.startsWith("'") && s.endsWith("'")));
}
} }
private String unquote(String s) { private String unquote(String s) {
......
...@@ -181,6 +181,14 @@ public class MediaTypeTests { ...@@ -181,6 +181,14 @@ public class MediaTypeTests {
assertEquals("\"v>alue\"", mediaType.getParameter("attr")); assertEquals("\"v>alue\"", mediaType.getParameter("attr"));
} }
// SPR-8917
@Test
public void parseMediaTypeSingleQuotedParameterValue() {
MediaType mediaType = MediaType.parseMediaType("audio/*;attr='v>alue'");
assertEquals("'v>alue'", mediaType.getParameter("attr"));
}
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void parseMediaTypeIllegalQuotedParameterValue() { public void parseMediaTypeIllegalQuotedParameterValue() {
MediaType.parseMediaType("audio/*;attr=\""); MediaType.parseMediaType("audio/*;attr=\"");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册