Merge remote-tracking branch 'origin/jetty-9.4.x'
This commit is contained in:
commit
26cfaa2efb
|
@ -169,13 +169,12 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
|
||||||
__serverInfo = serverInfo;
|
__serverInfo = serverInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected Context _scontext;
|
protected Context _scontext;
|
||||||
private final AttributesMap _attributes;
|
private final AttributesMap _attributes;
|
||||||
private final Map<String, String> _initParams;
|
private final Map<String, String> _initParams;
|
||||||
private ClassLoader _classLoader;
|
private ClassLoader _classLoader;
|
||||||
private String _contextPath = "/";
|
private String _contextPath = "/";
|
||||||
|
private String _contextPathEncoded = "/";
|
||||||
|
|
||||||
private String _displayName;
|
private String _displayName;
|
||||||
|
|
||||||
|
@ -507,7 +506,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
/**
|
/**
|
||||||
* @return Returns the _contextPath.
|
* @return Returns the contextPath.
|
||||||
*/
|
*/
|
||||||
@ManagedAttribute("True if URLs are compacted to replace the multiple '/'s with a single '/'")
|
@ManagedAttribute("True if URLs are compacted to replace the multiple '/'s with a single '/'")
|
||||||
public String getContextPath()
|
public String getContextPath()
|
||||||
|
@ -515,6 +514,15 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
|
||||||
return _contextPath;
|
return _contextPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* @return Returns the encoded contextPath.
|
||||||
|
*/
|
||||||
|
public String getContextPathEncoded()
|
||||||
|
{
|
||||||
|
return _contextPathEncoded;
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
/*
|
/*
|
||||||
* @see javax.servlet.ServletContext#getInitParameter(java.lang.String)
|
* @see javax.servlet.ServletContext#getInitParameter(java.lang.String)
|
||||||
|
@ -1108,7 +1116,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
|
||||||
if (_contextPath.length() == 1)
|
if (_contextPath.length() == 1)
|
||||||
baseRequest.setContextPath("");
|
baseRequest.setContextPath("");
|
||||||
else
|
else
|
||||||
baseRequest.setContextPath(_contextPath);
|
baseRequest.setContextPath(_contextPathEncoded);
|
||||||
baseRequest.setServletPath(null);
|
baseRequest.setServletPath(null);
|
||||||
baseRequest.setPathInfo(pathInfo);
|
baseRequest.setPathInfo(pathInfo);
|
||||||
}
|
}
|
||||||
|
@ -1485,6 +1493,7 @@ public class ContextHandler extends ScopedHandler implements Attributes, Gracefu
|
||||||
}
|
}
|
||||||
|
|
||||||
_contextPath = contextPath;
|
_contextPath = contextPath;
|
||||||
|
_contextPathEncoded = URIUtil.encodePath(contextPath);
|
||||||
|
|
||||||
if (getServer() != null && (getServer().isStarting() || getServer().isStarted()))
|
if (getServer() != null && (getServer().isStarting() || getServer().isStarted()))
|
||||||
{
|
{
|
||||||
|
|
|
@ -18,53 +18,31 @@
|
||||||
|
|
||||||
package org.eclipse.jetty.servlet;
|
package org.eclipse.jetty.servlet;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.is;
|
|
||||||
import static org.hamcrest.Matchers.startsWith;
|
import static org.hamcrest.Matchers.startsWith;
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.assertThat;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.servlet.AsyncContext;
|
import javax.servlet.AsyncContext;
|
||||||
import javax.servlet.DispatcherType;
|
import javax.servlet.DispatcherType;
|
||||||
import javax.servlet.Filter;
|
import javax.servlet.Filter;
|
||||||
import javax.servlet.FilterChain;
|
import javax.servlet.FilterChain;
|
||||||
import javax.servlet.FilterConfig;
|
import javax.servlet.FilterConfig;
|
||||||
import javax.servlet.GenericServlet;
|
|
||||||
import javax.servlet.RequestDispatcher;
|
|
||||||
import javax.servlet.Servlet;
|
|
||||||
import javax.servlet.ServletContext;
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.ServletRequest;
|
import javax.servlet.ServletRequest;
|
||||||
import javax.servlet.ServletRequestWrapper;
|
|
||||||
import javax.servlet.ServletResponse;
|
import javax.servlet.ServletResponse;
|
||||||
import javax.servlet.ServletResponseWrapper;
|
|
||||||
import javax.servlet.http.HttpServlet;
|
import javax.servlet.http.HttpServlet;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletRequestWrapper;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpServletResponseWrapper;
|
|
||||||
|
|
||||||
import org.eclipse.jetty.server.Dispatcher;
|
|
||||||
import org.eclipse.jetty.server.HttpConfiguration;
|
import org.eclipse.jetty.server.HttpConfiguration;
|
||||||
import org.eclipse.jetty.server.LocalConnector;
|
import org.eclipse.jetty.server.LocalConnector;
|
||||||
import org.eclipse.jetty.server.Server;
|
import org.eclipse.jetty.server.Server;
|
||||||
import org.eclipse.jetty.server.handler.ContextHandler;
|
|
||||||
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
|
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
|
||||||
import org.eclipse.jetty.server.handler.ResourceHandler;
|
|
||||||
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
|
|
||||||
import org.eclipse.jetty.util.TypeUtil;
|
|
||||||
import org.eclipse.jetty.util.URIUtil;
|
import org.eclipse.jetty.util.URIUtil;
|
||||||
import org.eclipse.jetty.util.UrlEncoded;
|
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -75,7 +53,6 @@ public class EncodedURITest
|
||||||
private ContextHandlerCollection _contextCollection;
|
private ContextHandlerCollection _contextCollection;
|
||||||
private ServletContextHandler _context0;
|
private ServletContextHandler _context0;
|
||||||
private ServletContextHandler _context1;
|
private ServletContextHandler _context1;
|
||||||
private ResourceHandler _resourceHandler;
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void init() throws Exception
|
public void init() throws Exception
|
||||||
|
@ -116,7 +93,7 @@ public class EncodedURITest
|
||||||
String response = _connector.getResponse("GET /c%6Fntext%20path/test%20servlet/path%20info HTTP/1.0\n\n");
|
String response = _connector.getResponse("GET /c%6Fntext%20path/test%20servlet/path%20info HTTP/1.0\n\n");
|
||||||
assertThat(response,startsWith("HTTP/1.1 200 "));
|
assertThat(response,startsWith("HTTP/1.1 200 "));
|
||||||
assertThat(response,Matchers.containsString("requestURI=/c%6Fntext%20path/test%20servlet/path%20info"));
|
assertThat(response,Matchers.containsString("requestURI=/c%6Fntext%20path/test%20servlet/path%20info"));
|
||||||
assertThat(response,Matchers.containsString("contextPath=/context path"));
|
assertThat(response,Matchers.containsString("contextPath=/context%20path"));
|
||||||
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
||||||
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
||||||
}
|
}
|
||||||
|
@ -127,7 +104,7 @@ public class EncodedURITest
|
||||||
String response = _connector.getResponse("GET /context%20path/test%20servlet/path%20info?async=true HTTP/1.0\n\n");
|
String response = _connector.getResponse("GET /context%20path/test%20servlet/path%20info?async=true HTTP/1.0\n\n");
|
||||||
assertThat(response,startsWith("HTTP/1.1 200 "));
|
assertThat(response,startsWith("HTTP/1.1 200 "));
|
||||||
assertThat(response,Matchers.containsString("requestURI=/context%20path/test%20servlet/path%20info"));
|
assertThat(response,Matchers.containsString("requestURI=/context%20path/test%20servlet/path%20info"));
|
||||||
assertThat(response,Matchers.containsString("contextPath=/context path"));
|
assertThat(response,Matchers.containsString("contextPath=/context%20path"));
|
||||||
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
||||||
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
||||||
}
|
}
|
||||||
|
@ -138,7 +115,7 @@ public class EncodedURITest
|
||||||
String response = _connector.getResponse("GET /context%20path/test%20servlet/path%20info?async=true&wrap=true HTTP/1.0\n\n");
|
String response = _connector.getResponse("GET /context%20path/test%20servlet/path%20info?async=true&wrap=true HTTP/1.0\n\n");
|
||||||
assertThat(response,startsWith("HTTP/1.1 200 "));
|
assertThat(response,startsWith("HTTP/1.1 200 "));
|
||||||
assertThat(response,Matchers.containsString("requestURI=/context%20path/test%20servlet/path%20info"));
|
assertThat(response,Matchers.containsString("requestURI=/context%20path/test%20servlet/path%20info"));
|
||||||
assertThat(response,Matchers.containsString("contextPath=/context path"));
|
assertThat(response,Matchers.containsString("contextPath=/context%20path"));
|
||||||
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
||||||
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
||||||
}
|
}
|
||||||
|
@ -149,7 +126,7 @@ public class EncodedURITest
|
||||||
String response = _connector.getResponse("GET /context%20path/async%20servlet/path%20info HTTP/1.0\n\n");
|
String response = _connector.getResponse("GET /context%20path/async%20servlet/path%20info HTTP/1.0\n\n");
|
||||||
assertThat(response,startsWith("HTTP/1.1 200 "));
|
assertThat(response,startsWith("HTTP/1.1 200 "));
|
||||||
assertThat(response,Matchers.containsString("requestURI=/context%20path/test servlet/path info"));
|
assertThat(response,Matchers.containsString("requestURI=/context%20path/test servlet/path info"));
|
||||||
assertThat(response,Matchers.containsString("contextPath=/context path"));
|
assertThat(response,Matchers.containsString("contextPath=/context%20path"));
|
||||||
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
||||||
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
||||||
}
|
}
|
||||||
|
@ -160,7 +137,7 @@ public class EncodedURITest
|
||||||
String response = _connector.getResponse("GET /context%20path/async%20servlet/path%20info?encode=true HTTP/1.0\n\n");
|
String response = _connector.getResponse("GET /context%20path/async%20servlet/path%20info?encode=true HTTP/1.0\n\n");
|
||||||
assertThat(response,startsWith("HTTP/1.1 200 "));
|
assertThat(response,startsWith("HTTP/1.1 200 "));
|
||||||
assertThat(response,Matchers.containsString("requestURI=/context%20path/test%20servlet/path%20info"));
|
assertThat(response,Matchers.containsString("requestURI=/context%20path/test%20servlet/path%20info"));
|
||||||
assertThat(response,Matchers.containsString("contextPath=/context path"));
|
assertThat(response,Matchers.containsString("contextPath=/context%20path"));
|
||||||
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
assertThat(response,Matchers.containsString("servletPath=/test servlet"));
|
||||||
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
assertThat(response,Matchers.containsString("pathInfo=/path info"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue