提交 28a696ba 编写于 作者: R Rossen Stoyanchev

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

上级 de504fa6
...@@ -30,6 +30,7 @@ import java.util.Enumeration; ...@@ -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 { ...@@ -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()));
} }
......
...@@ -32,7 +32,7 @@ import static org.junit.Assert.*; ...@@ -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 { ...@@ -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 { ...@@ -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);
} }
} }
\ No newline at end of file
...@@ -30,7 +30,7 @@ import org.springframework.http.HttpStatus; ...@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册