Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-11.0.x
This commit is contained in:
commit
f3dce81793
|
@ -1435,8 +1435,10 @@ public class Request implements HttpServletRequest
|
||||||
RequestLog requestLog = httpChannel.getRequestLog();
|
RequestLog requestLog = httpChannel.getRequestLog();
|
||||||
if (requestLog != null)
|
if (requestLog != null)
|
||||||
{
|
{
|
||||||
// Don't allow pulling more parameters
|
// Don't allow pulling more parameters from request body content
|
||||||
_contentParamsExtracted = true;
|
_contentParamsExtracted = true;
|
||||||
|
if (_contentParameters == null)
|
||||||
|
_contentParameters = NO_PARAMS;
|
||||||
|
|
||||||
// Reset the status code to what was committed
|
// Reset the status code to what was committed
|
||||||
MetaData.Response committedResponse = getResponse().getCommittedMetaData();
|
MetaData.Response committedResponse = getResponse().getCommittedMetaData();
|
||||||
|
|
|
@ -34,6 +34,8 @@ import org.eclipse.jetty.util.IO;
|
||||||
import org.eclipse.jetty.util.component.LifeCycle;
|
import org.eclipse.jetty.util.component.LifeCycle;
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
|
import org.junit.jupiter.params.provider.ValueSource;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
@ -145,8 +147,9 @@ public class RequestLogTest
|
||||||
* Test an unread HTTP/1.1 POST, it has valid body content, the dispatched Handler on the server doesn't read the POST body content.
|
* Test an unread HTTP/1.1 POST, it has valid body content, the dispatched Handler on the server doesn't read the POST body content.
|
||||||
* The RequestLog accidentally attempts to read the Request body content due to the use of Request.getParameterNames() API.
|
* The RequestLog accidentally attempts to read the Request body content due to the use of Request.getParameterNames() API.
|
||||||
*/
|
*/
|
||||||
@Test
|
@ParameterizedTest
|
||||||
public void testNormalPostFormRequest() throws Exception
|
@ValueSource(strings = {"/hello", "/hello?a=b"})
|
||||||
|
public void testNormalPostFormRequest(String requestPath) throws Exception
|
||||||
{
|
{
|
||||||
Server server = null;
|
Server server = null;
|
||||||
try
|
try
|
||||||
|
@ -179,7 +182,7 @@ public class RequestLogTest
|
||||||
byte[] bufForm = form.toString().getBytes(UTF_8);
|
byte[] bufForm = form.toString().getBytes(UTF_8);
|
||||||
|
|
||||||
StringBuilder req = new StringBuilder();
|
StringBuilder req = new StringBuilder();
|
||||||
req.append("POST /hello HTTP/1.1\r\n");
|
req.append("POST ").append(requestPath).append(" HTTP/1.1\r\n");
|
||||||
req.append("Host: ").append(baseURI.getRawAuthority()).append("\r\n");
|
req.append("Host: ").append(baseURI.getRawAuthority()).append("\r\n");
|
||||||
req.append("Content-Type: ").append(MimeTypes.Type.FORM_ENCODED).append("\r\n");
|
req.append("Content-Type: ").append(MimeTypes.Type.FORM_ENCODED).append("\r\n");
|
||||||
req.append("Content-Length: ").append(bufForm.length).append("\r\n");
|
req.append("Content-Length: ").append(bufForm.length).append("\r\n");
|
||||||
|
@ -213,7 +216,10 @@ public class RequestLogTest
|
||||||
assertThat("Body Content", bodyContent, containsString("Got POST to /hello"));
|
assertThat("Body Content", bodyContent, containsString("Got POST to /hello"));
|
||||||
|
|
||||||
String reqlog = requestLogLines.poll(5, TimeUnit.SECONDS);
|
String reqlog = requestLogLines.poll(5, TimeUnit.SECONDS);
|
||||||
assertThat("RequestLog", reqlog, containsString("method:POST|uri:/hello|paramNames.size:0|status:200"));
|
int querySize = 0;
|
||||||
|
if (requestPath.contains("?"))
|
||||||
|
querySize = 1; // assuming that parameterized version only has 1 query value
|
||||||
|
assertThat("RequestLog", reqlog, containsString("method:POST|uri:/hello|paramNames.size:" + querySize + "|status:200"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
|
Loading…
Reference in New Issue