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 org.eclipse.jetty.proxy.ProxyHandler
ProxyHandler.Forward, ProxyHandler.ProxyRequestContent, ProxyHandler.ProxyResponseListener, ProxyHandler.Reverse
Nested classes/interfaces inherited from class org.eclipse.jetty.server.Handler.Abstract
Handler.Abstract.NonBlocking
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
Nested classes/interfaces inherited from interface org.eclipse.jetty.server.Handler
Handler.Abstract, Handler.AbstractContainer, Handler.Collection, Handler.Container, Handler.Sequence, Handler.Singleton, Handler.Wrapper
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable
Invocable.Callable, Invocable.InvocationType, Invocable.ReadyTask, Invocable.Task
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
Nested classes/interfaces inherited from interface org.eclipse.jetty.server.Request.Handler
Request.Handler.AbortException
-
Field Summary
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPING
Fields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking, NOOP
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected HttpURI
rewriteHttpURI
(Request clientToProxyRequest) Rewrites the client-to-proxy request URI to the proxy-to-server request URI.Methods inherited from class org.eclipse.jetty.proxy.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, setViaHost
Methods inherited from class org.eclipse.jetty.server.Handler.Abstract
destroy, doStop, getInvocationType, getServer, setServer
Methods inherited from class org.eclipse.jetty.util.component.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, updateBeans
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListeners
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
Methods inherited from interface org.eclipse.jetty.util.component.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/$5
an incoming
HttpURI
of:http://host:8080/ctx/path
will 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
Creates a new instance with the given
HttpURI
rewrite function.The rewrite functions rewrites the client-to-proxy request URI into the proxy-to-server request URI.
- Parameters:
httpURIRewriter
- a function that returns the URI of the server
-
-
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:
rewriteHttpURI
in classProxyHandler
- Parameters:
clientToProxyRequest
- the client-to-proxy request- Returns:
- the proxy-to-server request URI.
-