Package org.eclipse.jetty.proxy
Class AsyncMiddleManServlet
java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.eclipse.jetty.proxy.AbstractProxyServlet
org.eclipse.jetty.proxy.AsyncMiddleManServlet
- All Implemented Interfaces:
Serializable
,javax.servlet.Servlet
,javax.servlet.ServletConfig
- Direct Known Subclasses:
AsyncMiddleManServlet.Transparent
Servlet 3.1 asynchronous proxy servlet with capability to intercept and modify request/response content.
Both the request processing and the I/O are asynchronous.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Allows applications to transform upstream and downstream content.static class
private static class
private class
protected class
protected class
protected class
static class
Convenience extension ofAsyncMiddleManServlet
that offers transparent proxy functionalities.Nested classes/interfaces inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
AbstractProxyServlet.ProxyContinueProtocolHandler, AbstractProxyServlet.TransparentDelegate
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private static final String
private static final String
private static final String
private static final String
Fields inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
_log, CLIENT_REQUEST_ATTRIBUTE, HOP_HEADERS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
cleanup
(javax.servlet.http.HttpServletRequest clientRequest) protected AsyncMiddleManServlet.ContentTransformer
newClientRequestContentTransformer
(javax.servlet.http.HttpServletRequest clientRequest, Request proxyRequest) protected DeferredContentProvider
newProxyContentProvider
(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, Request proxyRequest) protected javax.servlet.ReadListener
newProxyReadListener
(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, Request proxyRequest, DeferredContentProvider provider) protected Response.CompleteListener
newProxyResponseListener
(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse) protected AsyncMiddleManServlet.ProxyWriter
newProxyWriteListener
(javax.servlet.http.HttpServletRequest clientRequest, Response proxyResponse) protected AsyncMiddleManServlet.ContentTransformer
newServerResponseContentTransformer
(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, Response serverResponse) protected void
onContinue
(javax.servlet.http.HttpServletRequest clientRequest, Request proxyRequest) (package private) int
readClientRequestContent
(javax.servlet.ServletInputStream input, byte[] buffer) protected void
service
(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse) private void
transform
(AsyncMiddleManServlet.ContentTransformer transformer, ByteBuffer input, boolean finished, List<ByteBuffer> output) private static void
write
(OutputStream output, ByteBuffer content) (package private) void
writeProxyResponseContent
(javax.servlet.ServletOutputStream output, ByteBuffer content) Methods inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
addProxyHeaders, addViaHeader, addViaHeader, addXForwardedHeaders, clientRequestStatus, copyRequestHeaders, createHttpClient, createLogger, destroy, expects100Continue, filterServerResponseHeader, findConnectionHeaders, getBlackListHosts, getHostHeader, getHttpClient, getRequestId, getTimeout, getViaHost, getWhiteListHosts, hasContent, init, newHttpClient, newProxyRequest, onClientRequestFailure, onProxyResponseFailure, onProxyResponseSuccess, onProxyRewriteFailed, onServerResponseHeaders, proxyResponseStatus, rewriteTarget, sendProxyRequest, sendProxyResponseError, setTimeout, validateDestination
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
-
Field Details
-
PROXY_REQUEST_CONTENT_COMMITTED_ATTRIBUTE
-
CLIENT_TRANSFORMER_ATTRIBUTE
-
SERVER_TRANSFORMER_ATTRIBUTE
-
CONTINUE_ACTION_ATTRIBUTE
-
WRITE_LISTENER_ATTRIBUTE
-
-
Constructor Details
-
AsyncMiddleManServlet
public AsyncMiddleManServlet()
-
-
Method Details
-
service
protected void service(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse) throws javax.servlet.ServletException, IOException - Overrides:
service
in classjavax.servlet.http.HttpServlet
- Throws:
javax.servlet.ServletException
IOException
-
newProxyContentProvider
protected DeferredContentProvider newProxyContentProvider(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, Request proxyRequest) throws IOException - Throws:
IOException
-
newProxyReadListener
protected javax.servlet.ReadListener newProxyReadListener(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, Request proxyRequest, DeferredContentProvider provider) -
newProxyWriteListener
protected AsyncMiddleManServlet.ProxyWriter newProxyWriteListener(javax.servlet.http.HttpServletRequest clientRequest, Response proxyResponse) -
newProxyResponseListener
protected Response.CompleteListener newProxyResponseListener(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse) - Specified by:
newProxyResponseListener
in classAbstractProxyServlet
-
newClientRequestContentTransformer
protected AsyncMiddleManServlet.ContentTransformer newClientRequestContentTransformer(javax.servlet.http.HttpServletRequest clientRequest, Request proxyRequest) -
newServerResponseContentTransformer
protected AsyncMiddleManServlet.ContentTransformer newServerResponseContentTransformer(javax.servlet.http.HttpServletRequest clientRequest, javax.servlet.http.HttpServletResponse proxyResponse, Response serverResponse) -
onContinue
protected void onContinue(javax.servlet.http.HttpServletRequest clientRequest, Request proxyRequest) - Overrides:
onContinue
in classAbstractProxyServlet
-
transform
private void transform(AsyncMiddleManServlet.ContentTransformer transformer, ByteBuffer input, boolean finished, List<ByteBuffer> output) throws IOException - Throws:
IOException
-
readClientRequestContent
int readClientRequestContent(javax.servlet.ServletInputStream input, byte[] buffer) throws IOException - Throws:
IOException
-
writeProxyResponseContent
void writeProxyResponseContent(javax.servlet.ServletOutputStream output, ByteBuffer content) throws IOException - Throws:
IOException
-
write
- Throws:
IOException
-
cleanup
private void cleanup(javax.servlet.http.HttpServletRequest clientRequest)
-