Issue #8578 - Changes from review
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
This commit is contained in:
parent
a6a386a6cc
commit
8eba1c9924
|
@ -1278,12 +1278,7 @@ public class Request implements HttpServletRequest
|
||||||
@Override
|
@Override
|
||||||
public String getRequestURI()
|
public String getRequestURI()
|
||||||
{
|
{
|
||||||
if (_uri == null)
|
return _uri == null ? null : _uri.getPath();
|
||||||
return null;
|
|
||||||
if (HttpMethod.CONNECT.is(getMethod()))
|
|
||||||
return _uri.getAuthority();
|
|
||||||
else
|
|
||||||
return _uri.getPath();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1291,13 +1286,9 @@ public class Request implements HttpServletRequest
|
||||||
{
|
{
|
||||||
final StringBuffer url = new StringBuffer(128);
|
final StringBuffer url = new StringBuffer(128);
|
||||||
URIUtil.appendSchemeHostPort(url, getScheme(), getServerName(), getServerPort());
|
URIUtil.appendSchemeHostPort(url, getScheme(), getServerName(), getServerPort());
|
||||||
// only add RequestURI if not a CONNECT method
|
String path = getRequestURI();
|
||||||
if (!HttpMethod.CONNECT.is(getMethod()))
|
if (path != null)
|
||||||
{
|
url.append(path);
|
||||||
String requestURI = getRequestURI();
|
|
||||||
if (requestURI != null)
|
|
||||||
url.append(requestURI);
|
|
||||||
}
|
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -858,14 +858,14 @@ public class RequestTest
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConnectRequestURL() throws Exception
|
public void testConnectRequestURLSameAsHost() throws Exception
|
||||||
{
|
{
|
||||||
final AtomicReference<String> resultRequestURL = new AtomicReference<>();
|
final AtomicReference<String> resultRequestURL = new AtomicReference<>();
|
||||||
final AtomicReference<String> resultRequestURI = new AtomicReference<>();
|
final AtomicReference<String> resultRequestURI = new AtomicReference<>();
|
||||||
_handler._checker = (request, response) ->
|
_handler._checker = (request, response) ->
|
||||||
{
|
{
|
||||||
resultRequestURL.set("" + request.getRequestURL());
|
resultRequestURL.set(request.getRequestURL().toString());
|
||||||
resultRequestURI.set("" + request.getRequestURI());
|
resultRequestURI.set(request.getRequestURI());
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -876,8 +876,31 @@ public class RequestTest
|
||||||
"\n");
|
"\n");
|
||||||
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||||
assertThat(response.getStatus(), is(HttpStatus.OK_200));
|
assertThat(response.getStatus(), is(HttpStatus.OK_200));
|
||||||
assertThat(resultRequestURL.get(), is("http://myhost:9999"));
|
assertThat("request.getRequestURL", resultRequestURL.get(), is("http://myhost:9999/"));
|
||||||
assertThat(resultRequestURI.get(), is("myhost:9999"));
|
assertThat("request.getRequestURI", resultRequestURI.get(), is("/"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testConnectRequestURLDifferentThanHost() throws Exception
|
||||||
|
{
|
||||||
|
final AtomicReference<String> resultRequestURL = new AtomicReference<>();
|
||||||
|
final AtomicReference<String> resultRequestURI = new AtomicReference<>();
|
||||||
|
_handler._checker = (request, response) ->
|
||||||
|
{
|
||||||
|
resultRequestURL.set(request.getRequestURL().toString());
|
||||||
|
resultRequestURI.set(request.getRequestURI());
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
String rawResponse = _connector.getResponse(
|
||||||
|
"CONNECT myhost:9999 HTTP/1.1\n" +
|
||||||
|
"Host: otherhost:8888\n" + // per spec, this is ignored if request-target is authority-form
|
||||||
|
"Connection: close\n" +
|
||||||
|
"\n");
|
||||||
|
HttpTester.Response response = HttpTester.parseResponse(rawResponse);
|
||||||
|
assertThat(response.getStatus(), is(HttpStatus.OK_200));
|
||||||
|
assertThat("request.getRequestURL", resultRequestURL.get(), is("http://myhost:9999/"));
|
||||||
|
assertThat("request.getRequestURI", resultRequestURI.get(), is("/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
Loading…
Reference in New Issue