Class ProxyHandler.Reverse
- All Implemented Interfaces:
Handler, Request.Handler, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle, Invocable
- Direct Known Subclasses:
FastCGIProxyHandler
- Enclosing class:
ProxyHandler
A ProxyHandler that can be used to implement a reverse proxy.
A reverse proxy must rewrite the client-to-proxy request URI into the
proxy-to-server request URI.
This can be done by providing a rewrite function to the constructor,
and/or override rewriteHttpURI(Request).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class ProxyHandler
ProxyHandler.Forward, ProxyHandler.ProxyRequestContent, ProxyHandler.ProxyResponseListener, ProxyHandler.ReverseNested classes/interfaces inherited from class Handler.Abstract
Handler.Abstract.NonBlockingNested classes/interfaces inherited from class AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface Container
Container.InheritedListener, Container.ListenerNested classes/interfaces inherited from interface Dumpable
Dumpable.DumpableContainerNested classes/interfaces inherited from interface Handler
Handler.Abstract, Handler.AbstractContainer, Handler.Collection, Handler.Container, Handler.Sequence, Handler.Singleton, Handler.WrapperNested classes/interfaces inherited from interface Invocable
Invocable.Callable, Invocable.InvocationType, Invocable.ReadyTask, Invocable.TaskNested classes/interfaces inherited from interface LifeCycle
LifeCycle.ListenerNested classes/interfaces inherited from interface Request.Handler
Request.Handler.AbortException -
Field Summary
Fields inherited from interface Invocable
__nonBlocking, NOOP -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected HttpURIrewriteHttpURI(Request clientToProxyRequest) Rewrites the client-to-proxy request URI to the proxy-to-server request URI.Methods inherited from class ProxyHandler
addForwardedHeader, addProxyHeaders, addViaHeader, configureHttpClient, copyRequestHeaders, doStart, filterServerToProxyResponseField, getHttpClient, getProxyToServerHost, getViaHost, handle, newHttpClient, newProxyToServerRequest, newProxyToServerRequestContent, newServerToProxyResponseListener, onProxyToClientResponseComplete, onProxyToClientResponseFailure, onServerToProxyResponse100Continue, onServerToProxyResponse102Processing, onServerToProxyResponse103EarlyHints, onServerToProxyResponseFailure, requestId, sendProxyToServerRequest, setHttpClient, setProxyToServerHost, setViaHostMethods inherited from class Handler.Abstract
destroy, doStop, getInvocationType, getServer, setServerMethods inherited from class ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeansMethods inherited from class AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Container
getCachedBeans, getEventListenersMethods inherited from interface Dumpable.DumpableContainer
isDumpableMethods inherited from interface LifeCycle
addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
-
Constructor Details
-
Reverse
Convenience constructor that provides a rewrite function using
String.replaceAll(String, String).As a simple example, given the URI pattern of:
(https?)://([a-z]+):([0-9]+)/([^/]+)/(.*)and given a replacement string of:
$1://$2:9000/proxy/$5an incoming
HttpURIof:http://host:8080/ctx/pathwill be rewritten as:
http://host:9000/proxy/path- Parameters:
uriPattern- the regex pattern to use to match the incoming URIuriReplacement- the replacement string to use to rewrite the incoming URI
-
Reverse
-
-
Method Details
-
getHttpURIRewriter
-
rewriteHttpURI
Rewrites the client-to-proxy request URI to the proxy-to-server request URI.
Applications that use this class typically provide a rewrite function to the constructor.
The rewrite function rewrites the client-to-proxy request URI, for example
http://example.com/app/path, to the proxy-to-server request URI, for examplehttp://backend1:8080/legacy/path.- Specified by:
rewriteHttpURIin classProxyHandler- Parameters:
clientToProxyRequest- the client-to-proxy request- Returns:
- the proxy-to-server request URI.
-