Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java')
-rw-r--r--jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java140
1 files changed, 23 insertions, 117 deletions
diff --git a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java
index d374c35763..2c45df510e 100644
--- a/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java
+++ b/jetty-proxy/src/main/java/org/eclipse/jetty/proxy/ProxyServlet.java
@@ -20,7 +20,6 @@ package org.eclipse.jetty.proxy;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URI;
import java.nio.ByteBuffer;
import java.util.concurrent.TimeUnit;
@@ -53,7 +52,7 @@ public class ProxyServlet extends AbstractProxyServlet
{
final int requestId = getRequestId(request);
- URI rewrittenURI = rewriteURI(request);
+ String rewrittenTarget = rewriteTarget(request);
if (_log.isDebugEnabled())
{
@@ -61,20 +60,20 @@ public class ProxyServlet extends AbstractProxyServlet
if (request.getQueryString() != null)
uri.append("?").append(request.getQueryString());
if (_log.isDebugEnabled())
- _log.debug("{} rewriting: {} -> {}", requestId, uri, rewrittenURI);
+ _log.debug("{} rewriting: {} -> {}", requestId, uri, rewrittenTarget);
}
- if (rewrittenURI == null)
+ if (rewrittenTarget == null)
{
- onRewriteFailed(request, response);
+ onProxyRewriteFailed(request, response);
return;
}
- final Request proxyRequest = getHttpClient().newRequest(rewrittenURI)
+ final Request proxyRequest = getHttpClient().newRequest(rewrittenTarget)
.method(request.getMethod())
.version(HttpVersion.fromString(request.getProtocol()));
- copyHeaders(request, proxyRequest);
+ copyRequestHeaders(request, proxyRequest);
addProxyHeaders(request, proxyRequest);
@@ -84,64 +83,22 @@ public class ProxyServlet extends AbstractProxyServlet
proxyRequest.timeout(getTimeout(), TimeUnit.MILLISECONDS);
if (hasContent(request))
- proxyRequest.content(proxyRequestContent(proxyRequest, request));
-
- customizeProxyRequest(proxyRequest, request);
+ proxyRequest.content(proxyRequestContent(request, response, proxyRequest));
sendProxyRequest(request, response, proxyRequest);
}
- /**
- * @deprecated use {@link #copyRequestHeaders(HttpServletRequest, Request)} instead
- */
- @Deprecated
- protected void copyHeaders(HttpServletRequest clientRequest, Request proxyRequest)
+ protected ContentProvider proxyRequestContent(HttpServletRequest request, HttpServletResponse response, Request proxyRequest) throws IOException
{
- copyRequestHeaders(clientRequest, proxyRequest);
- }
-
- protected ContentProvider proxyRequestContent(final Request proxyRequest, final HttpServletRequest request) throws IOException
- {
- return new ProxyInputStreamContentProvider(proxyRequest, request, request.getInputStream());
+ return new ProxyInputStreamContentProvider(request, response, proxyRequest, request.getInputStream());
}
+ @Override
protected Response.Listener newProxyResponseListener(HttpServletRequest request, HttpServletResponse response)
{
return new ProxyResponseListener(request, response);
}
- protected void onClientRequestFailure(Request proxyRequest, HttpServletRequest request, Throwable failure)
- {
- if (_log.isDebugEnabled())
- _log.debug(getRequestId(request) + " client request failure", failure);
- proxyRequest.abort(failure);
- }
-
- /**
- * @deprecated use {@link #onProxyRewriteFailed(HttpServletRequest, HttpServletResponse)}
- */
- @Deprecated
- protected void onRewriteFailed(HttpServletRequest request, HttpServletResponse response) throws IOException
- {
- onProxyRewriteFailed(request, response);
- }
-
- /**
- * @deprecated use {@link #onServerResponseHeaders(HttpServletRequest, HttpServletResponse, Response)}
- */
- @Deprecated
- protected void onResponseHeaders(HttpServletRequest request, HttpServletResponse response, Response proxyResponse)
- {
- onServerResponseHeaders(request, response, proxyResponse);
- }
-
- // TODO: remove in Jetty 9.3, only here for backward compatibility.
- @Override
- protected String filterServerResponseHeader(HttpServletRequest clientRequest, Response serverResponse, String headerName, String headerValue)
- {
- return filterResponseHeader(clientRequest, headerName, headerValue);
- }
-
protected void onResponseContent(HttpServletRequest request, HttpServletResponse response, Response proxyResponse, byte[] buffer, int offset, int length, Callback callback)
{
try
@@ -158,62 +115,9 @@ public class ProxyServlet extends AbstractProxyServlet
}
/**
- * @deprecated Use {@link #onProxyResponseSuccess(HttpServletRequest, HttpServletResponse, Response)}
- */
- @Deprecated
- protected void onResponseSuccess(HttpServletRequest request, HttpServletResponse response, Response proxyResponse)
- {
- onProxyResponseSuccess(request, response, proxyResponse);
- }
-
- /**
- * @deprecated Use {@link #onProxyResponseFailure(HttpServletRequest, HttpServletResponse, Response, Throwable)}
- */
- @Deprecated
- protected void onResponseFailure(HttpServletRequest request, HttpServletResponse response, Response proxyResponse, Throwable failure)
- {
- onProxyResponseFailure(request, response, proxyResponse, failure);
- }
-
- /**
- * @deprecated use {@link #rewriteTarget(HttpServletRequest)}
- */
- @Deprecated
- protected URI rewriteURI(HttpServletRequest request)
- {
- String newTarget = rewriteTarget(request);
- return newTarget == null ? null : URI.create(newTarget);
- }
-
- /**
- * @deprecated use {@link #sendProxyRequest(HttpServletRequest, HttpServletResponse, Request)}
- */
- @Deprecated
- protected void customizeProxyRequest(Request proxyRequest, HttpServletRequest request)
- {
- }
-
- /**
- * Extension point for remote server response header filtering.
- * The default implementation returns the header value as is.
- * If null is returned, this header won't be forwarded back to the client.
- *
- * @param headerName the header name
- * @param headerValue the header value
- * @param request the request to proxy
- * @return filteredHeaderValue the new header value
- * @deprecated use {@link #filterServerResponseHeader(HttpServletRequest, Response, String, String)} instead
- */
- @Deprecated
- protected String filterResponseHeader(HttpServletRequest request, String headerName, String headerValue)
- {
- return headerValue;
- }
-
- /**
* <p>Convenience extension of {@link ProxyServlet} that offers transparent proxy functionalities.</p>
*
- * @see TransparentDelegate
+ * @see org.eclipse.jetty.proxy.AbstractProxyServlet.TransparentDelegate
*/
public static class Transparent extends ProxyServlet
{
@@ -227,9 +131,9 @@ public class ProxyServlet extends AbstractProxyServlet
}
@Override
- protected URI rewriteURI(HttpServletRequest request)
+ protected String rewriteTarget(HttpServletRequest request)
{
- return URI.create(delegate.rewriteTarget(request));
+ return delegate.rewriteTarget(request);
}
}
@@ -253,7 +157,7 @@ public class ProxyServlet extends AbstractProxyServlet
@Override
public void onHeaders(Response proxyResponse)
{
- onResponseHeaders(request, response, proxyResponse);
+ onServerResponseHeaders(request, response, proxyResponse);
}
@Override
@@ -295,9 +199,9 @@ public class ProxyServlet extends AbstractProxyServlet
public void onComplete(Result result)
{
if (result.isSucceeded())
- onResponseSuccess(request, response, result.getResponse());
+ onProxyResponseSuccess(request, response, result.getResponse());
else
- onResponseFailure(request, response, result.getResponse(), result.getFailure());
+ onProxyResponseFailure(request, response, result.getResponse(), result.getFailure());
if (_log.isDebugEnabled())
_log.debug("{} proxying complete", getRequestId(request));
}
@@ -305,14 +209,16 @@ public class ProxyServlet extends AbstractProxyServlet
protected class ProxyInputStreamContentProvider extends InputStreamContentProvider
{
+ private final HttpServletResponse response;
private final Request proxyRequest;
private final HttpServletRequest request;
- protected ProxyInputStreamContentProvider(Request proxyRequest, HttpServletRequest request, InputStream input)
+ protected ProxyInputStreamContentProvider(HttpServletRequest request, HttpServletResponse response, Request proxyRequest, InputStream input)
{
super(input);
- this.proxyRequest = proxyRequest;
this.request = request;
+ this.response = response;
+ this.proxyRequest = proxyRequest;
}
@Override
@@ -326,10 +232,10 @@ public class ProxyServlet extends AbstractProxyServlet
{
if (_log.isDebugEnabled())
_log.debug("{} proxying content to upstream: {} bytes", getRequestId(request), length);
- return onRequestContent(proxyRequest, request, buffer, offset, length);
+ return onRequestContent(request, proxyRequest, buffer, offset, length);
}
- protected ByteBuffer onRequestContent(Request proxyRequest, final HttpServletRequest request, byte[] buffer, int offset, int length)
+ protected ByteBuffer onRequestContent(HttpServletRequest request, Request proxyRequest, byte[] buffer, int offset, int length)
{
return super.onRead(buffer, offset, length);
}
@@ -337,7 +243,7 @@ public class ProxyServlet extends AbstractProxyServlet
@Override
protected void onReadFailure(Throwable failure)
{
- onClientRequestFailure(proxyRequest, request, failure);
+ onClientRequestFailure(request, proxyRequest, response, failure);
}
}
}

Back to the top