private int getMaximumRequestBufferSize() { int maxBufferSize = 0; for (HttpFiltersSource source : filterFactories) { int requestBufferSize = source.getMaximumRequestBufferSizeInBytes(); if (requestBufferSize > maxBufferSize) { maxBufferSize = requestBufferSize; } } return maxBufferSize; }
private int getMaximumResponseBufferSize() { int maxBufferSize = 0; for (HttpFiltersSource source : filterFactories) { int requestBufferSize = source.getMaximumResponseBufferSizeInBytes(); if (requestBufferSize > maxBufferSize) { maxBufferSize = requestBufferSize; } } return maxBufferSize; }
@Override public void proxyToServerResolutionSucceeded(String serverHostAndPort, InetSocketAddress resolvedRemoteAddress) { for (HttpFilters filter : filters) { try { filter.proxyToServerResolutionSucceeded(serverHostAndPort, resolvedRemoteAddress); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } super.proxyToServerResolutionSucceeded(serverHostAndPort, resolvedRemoteAddress); }
@Override public void proxyToServerConnectionSSLHandshakeStarted() { for (HttpFilters filter : filters) { try { filter.proxyToServerConnectionSSLHandshakeStarted(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerRequestSending() { for (HttpFilters filter : filters) { try { filter.proxyToServerRequestSending(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void serverToProxyResponseReceived() { for (HttpFilters filter : filters) { try { filter.serverToProxyResponseReceived(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void serverToProxyResponseTimedOut() { for (HttpFilters filter : filters) { try { filter.serverToProxyResponseTimedOut(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerConnectionFailed() { for (HttpFilters filter : filters) { try { filter.proxyToServerConnectionFailed(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerConnectionSucceeded(ChannelHandlerContext serverCtx) { for (HttpFilters filter : filters) { try { filter.proxyToServerConnectionSucceeded(serverCtx); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerConnectionQueued() { for (HttpFilters filter : filters) { try { filter.proxyToServerConnectionQueued(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerConnectionStarted() { for (HttpFilters filter : filters) { try { filter.proxyToServerConnectionStarted(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerRequestSent() { for (HttpFilters filter : filters) { try { filter.proxyToServerRequestSent(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void serverToProxyResponseReceiving() { for (HttpFilters filter : filters) { try { filter.serverToProxyResponseReceiving(); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public void proxyToServerResolutionFailed(String hostAndPort) { for (HttpFilters filter : filters) { try { filter.proxyToServerResolutionFailed(hostAndPort); } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } }
@Override public HttpObject serverToProxyResponse(HttpObject httpObject) { HttpObject processedHttpObject = httpObject; for (HttpFilters filter : filters) { try { processedHttpObject = filter.serverToProxyResponse(processedHttpObject); if (processedHttpObject == null) { return null; } } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } return processedHttpObject; }
@Override public HttpResponse proxyToServerRequest(HttpObject httpObject) { for (HttpFilters filter : filters) { try { HttpResponse filterResponse = filter.proxyToServerRequest(httpObject); if (filterResponse != null) { return filterResponse; } } catch (RuntimeException e) { log.warn("Filter in filter chain threw exception. Filter method may have been aborted.", e); } } return null; }
@Override public HttpObject proxyToClientResponse(HttpObject httpObject) { if (httpObject instanceof LastHttpContent) { activityMonitor.requestFinished(); } return super.proxyToClientResponse(httpObject); } }
@Override public HttpResponse clientToProxyRequest(HttpObject httpObject) { if (httpObject instanceof HttpRequest) { activityMonitor.requestStarted(); } return super.clientToProxyRequest(httpObject); } }
@Override public void setWriteBandwidthLimit(long bytesPerSecond) { this.writeBandwidthLimitBps = bytesPerSecond; if (isStarted()) { proxyServer.setThrottle(this.readBandwidthLimitBps, this.writeBandwidthLimitBps); } }
@Override public void setReadBandwidthLimit(long bytesPerSecond) { this.readBandwidthLimitBps = bytesPerSecond; if (isStarted()) { proxyServer.setThrottle(this.readBandwidthLimitBps, this.writeBandwidthLimitBps); } }