diff --git a/src/main/java/org/littleshoot/proxy/BadGatewayFailureHttpResponseComposer.java b/src/main/java/org/littleshoot/proxy/DefaultFailureHttpResponseComposer.java similarity index 81% rename from src/main/java/org/littleshoot/proxy/BadGatewayFailureHttpResponseComposer.java rename to src/main/java/org/littleshoot/proxy/DefaultFailureHttpResponseComposer.java index f115332cb..15b8c2572 100644 --- a/src/main/java/org/littleshoot/proxy/BadGatewayFailureHttpResponseComposer.java +++ b/src/main/java/org/littleshoot/proxy/DefaultFailureHttpResponseComposer.java @@ -6,7 +6,7 @@ import io.netty.handler.codec.http.HttpVersion; import org.littleshoot.proxy.impl.ProxyUtils; -public class BadGatewayFailureHttpResponseComposer implements FailureHttpResponseComposer { +public class DefaultFailureHttpResponseComposer implements FailureHttpResponseComposer { /** * Tells the client that something went wrong trying to proxy its request. If the Bad Gateway is a response to @@ -20,8 +20,9 @@ public class BadGatewayFailureHttpResponseComposer implements FailureHttpRespons @Override public FullHttpResponse compose(HttpRequest httpRequest, Throwable cause) { String body = provideCustomMessage(httpRequest, cause); + HttpResponseStatus status = provideCustomStatus(httpRequest, cause); - FullHttpResponse response = ProxyUtils.createFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.BAD_GATEWAY, body); + FullHttpResponse response = ProxyUtils.createFullHttpResponse(HttpVersion.HTTP_1_1, status, body); if (ProxyUtils.isHEAD(httpRequest)) { // don't allow any body content in response to a HEAD request @@ -39,4 +40,8 @@ public FullHttpResponse compose(HttpRequest httpRequest, Throwable cause) { protected String provideCustomMessage(HttpRequest httpRequest, Throwable cause) { return "Bad Gateway: " + httpRequest.getUri(); } + + protected HttpResponseStatus provideCustomStatus(HttpRequest httpRequest, Throwable cause) { + return HttpResponseStatus.BAD_GATEWAY; + } } diff --git a/src/main/java/org/littleshoot/proxy/HttpProxyServerBootstrap.java b/src/main/java/org/littleshoot/proxy/HttpProxyServerBootstrap.java index 7eb838673..3b5d82031 100644 --- a/src/main/java/org/littleshoot/proxy/HttpProxyServerBootstrap.java +++ b/src/main/java/org/littleshoot/proxy/HttpProxyServerBootstrap.java @@ -234,7 +234,7 @@ HttpProxyServerBootstrap withFiltersSource( *
* *- * Default = {@link BadGatewayFailureHttpResponseComposer} + * Default = {@link DefaultFailureHttpResponseComposer} *
* * @param unrecoverableFailureHttpResponseComposer custom response message composer diff --git a/src/main/java/org/littleshoot/proxy/impl/ClientToProxyConnection.java b/src/main/java/org/littleshoot/proxy/impl/ClientToProxyConnection.java index afef50a11..dca696d4b 100644 --- a/src/main/java/org/littleshoot/proxy/impl/ClientToProxyConnection.java +++ b/src/main/java/org/littleshoot/proxy/impl/ClientToProxyConnection.java @@ -25,7 +25,7 @@ import io.netty.util.concurrent.GenericFutureListener; import org.apache.commons.lang3.StringUtils; import org.littleshoot.proxy.ActivityTracker; -import org.littleshoot.proxy.BadGatewayFailureHttpResponseComposer; +import org.littleshoot.proxy.DefaultFailureHttpResponseComposer; import org.littleshoot.proxy.ExceptionHandler; import org.littleshoot.proxy.FailureHttpResponseComposer; import org.littleshoot.proxy.FlowContext; @@ -1215,7 +1215,7 @@ private void stripHopByHopHeaders(HttpHeaders headers) { * @return true if the connection will be kept open, or false if it will be disconnected */ private boolean writeBadGateway(HttpRequest httpRequest) { - FullHttpResponse badGatewayResponse = new BadGatewayFailureHttpResponseComposer().compose(httpRequest, null); + FullHttpResponse badGatewayResponse = new DefaultFailureHttpResponseComposer().compose(httpRequest, null); return respondWithShortCircuitResponse(badGatewayResponse); } diff --git a/src/main/java/org/littleshoot/proxy/impl/DefaultHttpProxyServer.java b/src/main/java/org/littleshoot/proxy/impl/DefaultHttpProxyServer.java index 91a2b710e..e42457213 100644 --- a/src/main/java/org/littleshoot/proxy/impl/DefaultHttpProxyServer.java +++ b/src/main/java/org/littleshoot/proxy/impl/DefaultHttpProxyServer.java @@ -17,7 +17,7 @@ import io.netty.handler.traffic.GlobalTrafficShapingHandler; import io.netty.util.concurrent.GlobalEventExecutor; import org.littleshoot.proxy.ActivityTracker; -import org.littleshoot.proxy.BadGatewayFailureHttpResponseComposer; +import org.littleshoot.proxy.DefaultFailureHttpResponseComposer; import org.littleshoot.proxy.ChainedProxyManager; import org.littleshoot.proxy.DefaultHostResolver; import org.littleshoot.proxy.DnsSecServerResolver; @@ -641,7 +641,7 @@ private static class DefaultHttpProxyServerBootstrap implements HttpProxyServerB private ExceptionHandler clientToProxyExHandler = null; private ExceptionHandler proxyToServerExHandler = null; private HttpFiltersSource filtersSource = new HttpFiltersSourceAdapter(); - private FailureHttpResponseComposer unrecoverableFailureHttpResponseComposer = new BadGatewayFailureHttpResponseComposer(); + private FailureHttpResponseComposer unrecoverableFailureHttpResponseComposer = new DefaultFailureHttpResponseComposer(); private boolean transparent = false; private int idleConnectionTimeout = 70; private Collection