SPR-8917 Fix issue with quoted parameter values in MediaType.

master
Rossen Stoyanchev 13 years ago
parent b0c735feae
commit e8fc90ce3e
  1. 6
      org.springframework.web/src/main/java/org/springframework/http/MediaType.java
  2. 5
      org.springframework.web/src/test/java/org/springframework/http/MediaTypeTests.java

@ -331,7 +331,7 @@ public class MediaType implements Comparable<MediaType> {
String attribute = entry.getKey();
String value = entry.getValue();
checkParameters(attribute, value);
m.put(attribute, unquote(value));
m.put(attribute, value);
}
this.parameters = Collections.unmodifiableMap(m);
}
@ -428,7 +428,7 @@ public class MediaType implements Comparable<MediaType> {
*/
public Charset getCharSet() {
String charSet = getParameter(PARAM_CHARSET);
return (charSet != null ? Charset.forName(charSet) : null);
return (charSet != null ? Charset.forName(unquote(charSet)) : null);
}
/**
@ -438,7 +438,7 @@ public class MediaType implements Comparable<MediaType> {
*/
public double getQualityValue() {
String qualityFactory = getParameter(PARAM_QUALITY_FACTOR);
return (qualityFactory != null ? Double.parseDouble(qualityFactory) : 1D);
return (qualityFactory != null ? Double.parseDouble(unquote(qualityFactory)) : 1D);
}
/**

@ -173,9 +173,12 @@ public class MediaTypeTests {
MediaType.parseMediaType("text/html; charset=foo-bar");
}
// SPR-8917
@Test
public void parseMediaTypeQuotedParameterValue() {
MediaType.parseMediaType("audio/*;attr=\"v>alue\"");
MediaType mediaType = MediaType.parseMediaType("audio/*;attr=\"v>alue\"");
assertEquals("\"v>alue\"", mediaType.getParameter("attr"));
}
@Test(expected = IllegalArgumentException.class)

Loading…
Cancel
Save