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
This commit is contained in:
committed by
Rossen Stoyanchev
parent
ab4952a959
commit
7cdc53487d
@@ -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 {
|
|||||||
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=\"");
|
||||||
|
|||||||
Reference in New Issue
Block a user