public class ProxyServlet
extends javax.servlet.http.HttpServlet
HttpClient
instance is set as context attribute,
prefixed with the servlet's name and exposed by the mechanism provided by
ContextHandler.MANAGED_ATTRIBUTES
.
The following init parameters may be used to configure the servlet:
createHttpClient()
for init parameters used to configure
the HttpClient
instance.ConnectHandler
,
直列化された形式修飾子とタイプ | クラスと説明 |
---|---|
static class |
ProxyServlet.Transparent
Transparent Proxy.
|
修飾子とタイプ | フィールドと説明 |
---|---|
protected org.eclipse.jetty.util.log.Logger |
_log |
protected static java.lang.String |
ASYNC_CONTEXT |
コンストラクタと説明 |
---|
ProxyServlet() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected org.eclipse.jetty.client.HttpClient |
createHttpClient()
Creates a
HttpClient instance, configured with init parameters of this servlet. |
protected org.eclipse.jetty.util.log.Logger |
createLogger() |
protected void |
customizeProxyRequest(org.eclipse.jetty.client.api.Request proxyRequest,
javax.servlet.http.HttpServletRequest request)
Extension point for subclasses to customize the proxy request.
|
void |
destroy() |
protected java.lang.String |
filterResponseHeader(javax.servlet.http.HttpServletRequest request,
java.lang.String headerName,
java.lang.String headerValue)
Extension point for remote server response header filtering.
|
java.util.Set<java.lang.String> |
getBlackListHosts() |
protected int |
getRequestId(javax.servlet.http.HttpServletRequest request) |
long |
getTimeout() |
java.util.Set<java.lang.String> |
getWhiteListHosts() |
void |
init() |
protected org.eclipse.jetty.client.HttpClient |
newHttpClient() |
protected void |
onResponseContent(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
org.eclipse.jetty.client.api.Response proxyResponse,
byte[] buffer,
int offset,
int length) |
protected void |
onResponseFailure(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
org.eclipse.jetty.client.api.Response proxyResponse,
java.lang.Throwable failure) |
protected void |
onResponseHeaders(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
org.eclipse.jetty.client.api.Response proxyResponse) |
protected void |
onResponseSuccess(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
org.eclipse.jetty.client.api.Response proxyResponse) |
protected java.net.URI |
rewriteURI(javax.servlet.http.HttpServletRequest request) |
protected void |
service(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
void |
setTimeout(long timeout) |
boolean |
validateDestination(java.lang.String host,
int port)
Checks the given
host and port against whitelist and blacklist. |
protected static java.lang.String |
viaHost() |
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
protected static final java.lang.String ASYNC_CONTEXT
protected org.eclipse.jetty.util.log.Logger _log
public void init() throws javax.servlet.ServletException
init
クラス内 javax.servlet.GenericServlet
javax.servlet.ServletException
public long getTimeout()
public void setTimeout(long timeout)
public java.util.Set<java.lang.String> getWhiteListHosts()
public java.util.Set<java.lang.String> getBlackListHosts()
protected static java.lang.String viaHost()
protected org.eclipse.jetty.util.log.Logger createLogger()
public void destroy()
destroy
インタフェース内 javax.servlet.Servlet
destroy
クラス内 javax.servlet.GenericServlet
protected org.eclipse.jetty.client.HttpClient createHttpClient() throws javax.servlet.ServletException
HttpClient
instance, configured with init parameters of this servlet.
The init parameters used to configure the HttpClient
instance are:
init-param | default | description |
---|---|---|
maxThreads | 256 | The max number of threads of HttpClient's Executor |
maxConnections | 32768 | The max number of connections per destination, see HttpClient.setMaxConnectionsPerDestination(int) |
idleTimeout | 30000 | The idle timeout in milliseconds, see HttpClient.setIdleTimeout(long) |
timeout | 60000 | The total timeout in milliseconds, see Request.timeout(long, TimeUnit) |
requestBufferSize | HttpClient's default | The request buffer size, see HttpClient.setRequestBufferSize(int) |
responseBufferSize | HttpClient's default | The response buffer size, see HttpClient.setResponseBufferSize(int) |
HttpClient
configured from the servlet configuration
javax.servlet.ServletException
- if the HttpClient
cannot be createdprotected org.eclipse.jetty.client.HttpClient newHttpClient()
public boolean validateDestination(java.lang.String host, int port)
host
and port
against whitelist and blacklist.host
- the host to checkport
- the port to checkprotected void service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException
service
クラス内 javax.servlet.http.HttpServlet
javax.servlet.ServletException
java.io.IOException
protected void onResponseHeaders(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, org.eclipse.jetty.client.api.Response proxyResponse)
protected void onResponseContent(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, org.eclipse.jetty.client.api.Response proxyResponse, byte[] buffer, int offset, int length) throws java.io.IOException
java.io.IOException
protected void onResponseSuccess(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, org.eclipse.jetty.client.api.Response proxyResponse)
protected void onResponseFailure(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, org.eclipse.jetty.client.api.Response proxyResponse, java.lang.Throwable failure)
protected int getRequestId(javax.servlet.http.HttpServletRequest request)
protected java.net.URI rewriteURI(javax.servlet.http.HttpServletRequest request)
protected void customizeProxyRequest(org.eclipse.jetty.client.api.Request proxyRequest, javax.servlet.http.HttpServletRequest request)
proxyRequest
- the proxy request to customizerequest
- the request to be proxiedprotected java.lang.String filterResponseHeader(javax.servlet.http.HttpServletRequest request, java.lang.String headerName, java.lang.String headerValue)
headerName
- the header nameheaderValue
- the header valuerequest
- the request to proxy