SPR-8676 Fix minor issue in how ServletServletHttpRequest detects form content-type requests

This commit is contained in:
Rossen Stoyanchev 2011-09-13 12:35:05 +00:00
parent de504fa613
commit 28a696ba51
3 changed files with 7 additions and 4 deletions

View File

@ -30,6 +30,7 @@ import java.util.Enumeration;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
@ -115,7 +116,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
} }
private boolean isFormSubmittal(HttpServletRequest request) { private boolean isFormSubmittal(HttpServletRequest request) {
return FORM_CONTENT_TYPE.equals(request.getContentType()) && return request.getContentType() != null && request.getContentType().contains(FORM_CONTENT_TYPE) &&
(METHOD_POST.equalsIgnoreCase(request.getMethod()) || METHOD_PUT.equalsIgnoreCase(request.getMethod())); (METHOD_POST.equalsIgnoreCase(request.getMethod()) || METHOD_PUT.equalsIgnoreCase(request.getMethod()));
} }

View File

@ -32,7 +32,7 @@ import static org.junit.Assert.*;
/** /**
* @author Arjen Poutsma * @author Arjen Poutsma
*/ */
public class ServletHttpRequestTests { public class ServletServerHttpRequestTests {
private ServletServerHttpRequest request; private ServletServerHttpRequest request;
@ -88,7 +88,8 @@ public class ServletHttpRequestTests {
@Test @Test
public void getFormBody() throws Exception { public void getFormBody() throws Exception {
mockRequest.setContentType("application/x-www-form-urlencoded"); // Charset (SPR-8676)
mockRequest.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
mockRequest.setMethod("POST"); mockRequest.setMethod("POST");
mockRequest.addParameter("name 1", "value 1"); mockRequest.addParameter("name 1", "value 1");
mockRequest.addParameter("name 2", new String[] {"value 2+1", "value 2+2"}); mockRequest.addParameter("name 2", new String[] {"value 2+1", "value 2+2"});
@ -98,4 +99,5 @@ public class ServletHttpRequestTests {
byte[] content = "name+1=value+1&name+2=value+2%2B1&name+2=value+2%2B2&name+3".getBytes("UTF-8"); byte[] content = "name+1=value+1&name+2=value+2%2B1&name+2=value+2%2B2&name+3".getBytes("UTF-8");
assertArrayEquals("Invalid content returned", content, result); assertArrayEquals("Invalid content returned", content, result);
} }
} }

View File

@ -30,7 +30,7 @@ import org.springframework.http.HttpStatus;
/** /**
* @author Arjen Poutsma * @author Arjen Poutsma
*/ */
public class ServletHttpResponseTests { public class ServletServerHttpResponseTests {
private ServletServerHttpResponse response; private ServletServerHttpResponse response;