- All Implemented Interfaces:
org.eclipse.jetty.server.Handler,org.eclipse.jetty.server.Request.Handler,org.eclipse.jetty.util.component.Container,org.eclipse.jetty.util.component.Destroyable,org.eclipse.jetty.util.component.Dumpable,org.eclipse.jetty.util.component.Dumpable.DumpableContainer,org.eclipse.jetty.util.component.LifeCycle,org.eclipse.jetty.util.thread.Invocable
- 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.ReverseNested classes/interfaces inherited from class org.eclipse.jetty.server.Handler.Abstract
org.eclipse.jetty.server.Handler.Abstract.NonBlockingNested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
org.eclipse.jetty.util.component.Container.InheritedListener, org.eclipse.jetty.util.component.Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
org.eclipse.jetty.util.component.Dumpable.DumpableContainer, org.eclipse.jetty.util.component.Dumpable.DumpAppendableNested classes/interfaces inherited from interface org.eclipse.jetty.server.Handler
org.eclipse.jetty.server.Handler.Abstract, org.eclipse.jetty.server.Handler.AbstractContainer, org.eclipse.jetty.server.Handler.Collection, org.eclipse.jetty.server.Handler.Container, org.eclipse.jetty.server.Handler.Sequence, org.eclipse.jetty.server.Handler.Singleton, org.eclipse.jetty.server.Handler.WrapperNested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable
org.eclipse.jetty.util.thread.Invocable.Callable, org.eclipse.jetty.util.thread.Invocable.InvocationType, org.eclipse.jetty.util.thread.Invocable.ReadyTask, org.eclipse.jetty.util.thread.Invocable.TaskNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.server.Request.Handler
org.eclipse.jetty.server.Request.Handler.AbortException -
Field Summary
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPINGFields inherited from interface org.eclipse.jetty.util.component.Dumpable
LEGENDFields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking, NOOP -
Constructor Summary
ConstructorsConstructorDescriptionConvenience constructor that provides a rewrite function usingString.replaceAll(String, String).Creates a new instance with the givenHttpURIrewrite function. -
Method Summary
Modifier and TypeMethodDescriptionFunction<org.eclipse.jetty.server.Request, org.eclipse.jetty.http.HttpURI> protected org.eclipse.jetty.http.HttpURIrewriteHttpURI(org.eclipse.jetty.server.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, setViaHostMethods inherited from class org.eclipse.jetty.server.Handler.Abstract
destroy, doStop, getInvocationType, getServer, setServerMethods 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, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stop, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.util.component.Container
getCachedBeans, getEventListenersMethods inherited from interface org.eclipse.jetty.util.component.Dumpable
dumpSelfMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpableMethods 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/$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
public Reverse(Function<org.eclipse.jetty.server.Request, org.eclipse.jetty.http.HttpURI> httpURIRewriter) Creates a new instance with the given
HttpURIrewrite 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
public Function<org.eclipse.jetty.server.Request,org.eclipse.jetty.http.HttpURI> getHttpURIRewriter() -
rewriteHttpURI
protected org.eclipse.jetty.http.HttpURI rewriteHttpURI(org.eclipse.jetty.server.Request clientToProxyRequest) 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.
-