Ignore parse errors in HttpPutFormContentFilter
Errors when parsing the request content-type, in order to find out if the request has form content, are translated to false. Issue: SPR-9769
This commit is contained in:
@@ -87,14 +87,18 @@ public class HttpPutFormContentFilter extends OncePerRequestFilter {
|
||||
else {
|
||||
filterChain.doFilter(request, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean isFormContentType(HttpServletRequest request) {
|
||||
String contentType = request.getContentType();
|
||||
if (contentType != null) {
|
||||
MediaType mediaType = MediaType.parseMediaType(contentType);
|
||||
return (MediaType.APPLICATION_FORM_URLENCODED.includes(mediaType));
|
||||
try {
|
||||
MediaType mediaType = MediaType.parseMediaType(contentType);
|
||||
return (MediaType.APPLICATION_FORM_URLENCODED.includes(mediaType));
|
||||
}
|
||||
catch (IllegalArgumentException ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
|
||||
@@ -87,6 +87,15 @@ public class HttpPutFormContentFilterTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void invalidMediaType() throws Exception {
|
||||
request.setContent("".getBytes("ISO-8859-1"));
|
||||
request.setContentType("foo");
|
||||
filterChain = new MockFilterChain();
|
||||
filter.doFilter(request, response, filterChain);
|
||||
assertSame(request, filterChain.getRequest());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getParameter() throws Exception {
|
||||
request.setContent("name=value".getBytes("ISO-8859-1"));
|
||||
|
||||
Reference in New Issue
Block a user