public final class ProxyHandler extends Object implements HttpHandler
This handler acts like a filter. The ProxyClient
has a chance to decide if it knows how to proxy the request. If it does then it will provide a connection that can used to connect to the remote server, otherwise the next handler will be invoked and the request will proceed as normal.
Modifier and Type | Class and Description |
---|---|
static class | ProxyHandler.Builder |
Constructor and Description |
---|
ProxyHandler(ProxyClient proxyClient, HttpHandler next) |
ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next) |
ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next, boolean rewriteHostHeader, boolean reuseXForwarded) |
ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next, boolean rewriteHostHeader, boolean reuseXForwarded, int maxConnectionRetries) |
Modifier and Type | Method and Description |
---|---|
ProxyHandler | addRequestHeader(HttpString header, ExchangeAttribute attribute) Adds a request header to the outgoing request. |
ProxyHandler | addRequestHeader(HttpString header, String value) Adds a request header to the outgoing request. |
ProxyHandler | addRequestHeader(HttpString header, String attribute, ClassLoader classLoader) Adds a request header to the outgoing request. |
Predicate | getIdempotentRequestPredicate() |
int | getMaxConnectionRetries() |
ProxyClient | getProxyClient() |
void | handleRequest(HttpServerExchange exchange) Handle the request. |
boolean | isReuseXForwarded() |
boolean | isRewriteHostHeader() |
ProxyHandler | removeRequestHeader(HttpString header) Removes a request header |
ProxyHandler | setMaxConnectionRetries(int maxConnectionRetries) |
ProxyHandler | setReuseXForwarded(boolean reuseXForwarded) |
ProxyHandler | setRewriteHostHeader(boolean rewriteHostHeader) |
public static final String UTF_8
public ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next)
public ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next, boolean rewriteHostHeader, boolean reuseXForwarded)
proxyClient
- the client to use to make the proxy callmaxRequestTime
- the maximum amount of time to allow the request to be processednext
- the next handler in linerewriteHostHeader
- should the HOST header be rewritten to use the target host of the call.reuseXForwarded
- should any existing X-Forwarded-For header be used or should it be overwritten.public ProxyHandler(ProxyClient proxyClient, int maxRequestTime, HttpHandler next, boolean rewriteHostHeader, boolean reuseXForwarded, int maxConnectionRetries)
proxyClient
- the client to use to make the proxy callmaxRequestTime
- the maximum amount of time to allow the request to be processednext
- the next handler in linerewriteHostHeader
- should the HOST header be rewritten to use the target host of the call.reuseXForwarded
- should any existing X-Forwarded-For header be used or should it be overwritten.maxConnectionRetries
- public ProxyHandler(ProxyClient proxyClient, HttpHandler next)
public void handleRequest(HttpServerExchange exchange) throws Exception
HttpHandler
handleRequest
in interface HttpHandler
exchange
- the HTTP request/response exchangeException
public ProxyHandler addRequestHeader(HttpString header, ExchangeAttribute attribute)
header
- The header nameattribute
- The header value attribute.public ProxyHandler addRequestHeader(HttpString header, String value)
header
- The header namevalue
- The header value attribute.public ProxyHandler addRequestHeader(HttpString header, String attribute, ClassLoader classLoader)
The attribute value will be parsed, and the resulting exchange attribute will be used to create the actual header value.
header
- The header nameattribute
- The header value attribute.public ProxyHandler removeRequestHeader(HttpString header)
header
- the headerpublic ProxyClient getProxyClient()
public ProxyHandler setMaxConnectionRetries(int maxConnectionRetries)
public boolean isRewriteHostHeader()
public ProxyHandler setRewriteHostHeader(boolean rewriteHostHeader)
public boolean isReuseXForwarded()
public ProxyHandler setReuseXForwarded(boolean reuseXForwarded)
public int getMaxConnectionRetries()
public Predicate getIdempotentRequestPredicate()
Copyright © 2017 JBoss by Red Hat. All rights reserved.