Package org.eclipse.jetty.proxy
Class BalancerServlet
java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.eclipse.jetty.proxy.AbstractProxyServlet
org.eclipse.jetty.proxy.ProxyServlet
org.eclipse.jetty.proxy.BalancerServlet
- All Implemented Interfaces:
Serializable
,javax.servlet.Servlet
,javax.servlet.ServletConfig
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.eclipse.jetty.proxy.ProxyServlet
ProxyServlet.ProxyInputStreamContentProvider, ProxyServlet.ProxyResponseListener, ProxyServlet.Transparent
Nested classes/interfaces inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
AbstractProxyServlet.ProxyContinueProtocolHandler, AbstractProxyServlet.TransparentDelegate
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List
<BalancerServlet.BalancerMember> private boolean
private boolean
private static final String
private final AtomicLong
private static final String
private static final String
Fields inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
_log, CLIENT_REQUEST_ATTRIBUTE, HOP_HEADERS
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String
extractBalancerMemberNameFromSessionId
(String sessionId) protected String
filterServerResponseHeader
(javax.servlet.http.HttpServletRequest request, Response serverResponse, String headerName, String headerValue) private BalancerServlet.BalancerMember
private String
getBalancerMemberNameFromSessionCookie
(javax.servlet.http.HttpServletRequest request) private String
getBalancerMemberNameFromSessionId
(javax.servlet.http.HttpServletRequest request) private String
getBalancerMemberNameFromURL
(javax.servlet.http.HttpServletRequest request) void
init()
private void
private void
private void
private boolean
isBackendLocation
(URI locationURI) protected String
rewriteTarget
(javax.servlet.http.HttpServletRequest request) private BalancerServlet.BalancerMember
selectBalancerMember
(javax.servlet.http.HttpServletRequest request) private void
boolean
validateDestination
(String host, int port) Checks the givenhost
andport
against whitelist and blacklist.Methods inherited from class org.eclipse.jetty.proxy.ProxyServlet
newProxyResponseListener, onContinue, onResponseContent, proxyRequestContent, service
Methods inherited from class org.eclipse.jetty.proxy.AbstractProxyServlet
addProxyHeaders, addViaHeader, addViaHeader, addXForwardedHeaders, clientRequestStatus, copyRequestHeaders, createHttpClient, createLogger, destroy, expects100Continue, findConnectionHeaders, getBlackListHosts, getHostHeader, getHttpClient, getRequestId, getTimeout, getViaHost, getWhiteListHosts, hasContent, newHttpClient, newProxyRequest, onClientRequestFailure, onProxyResponseFailure, onProxyResponseSuccess, onProxyRewriteFailed, onServerResponseHeaders, proxyResponseStatus, sendProxyRequest, sendProxyResponseError, setTimeout
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
-
Field Details
-
BALANCER_MEMBER_PREFIX
- See Also:
-
FORBIDDEN_CONFIG_PARAMETERS
-
REVERSE_PROXY_HEADERS
-
JSESSIONID
- See Also:
-
JSESSIONID_URL_PREFIX
- See Also:
-
_balancerMembers
-
counter
-
_stickySessions
private boolean _stickySessions -
_proxyPassReverse
private boolean _proxyPassReverse
-
-
Constructor Details
-
BalancerServlet
public BalancerServlet()
-
-
Method Details
-
init
public void init() throws javax.servlet.ServletException- Overrides:
init
in classAbstractProxyServlet
- Throws:
javax.servlet.ServletException
-
validateConfig
private void validateConfig() throws javax.servlet.ServletException- Throws:
javax.servlet.ServletException
-
initStickySessions
private void initStickySessions() -
initBalancers
private void initBalancers() throws javax.servlet.ServletException- Throws:
javax.servlet.ServletException
-
initProxyPassReverse
private void initProxyPassReverse() -
getBalancerNames
- Throws:
javax.servlet.ServletException
-
rewriteTarget
- Overrides:
rewriteTarget
in classAbstractProxyServlet
-
selectBalancerMember
private BalancerServlet.BalancerMember selectBalancerMember(javax.servlet.http.HttpServletRequest request) -
findBalancerMemberByName
-
getBalancerMemberNameFromSessionId
-
getBalancerMemberNameFromSessionCookie
private String getBalancerMemberNameFromSessionCookie(javax.servlet.http.HttpServletRequest request) -
getBalancerMemberNameFromURL
-
extractBalancerMemberNameFromSessionId
-
filterServerResponseHeader
protected String filterServerResponseHeader(javax.servlet.http.HttpServletRequest request, Response serverResponse, String headerName, String headerValue) - Overrides:
filterServerResponseHeader
in classAbstractProxyServlet
-
isBackendLocation
-
validateDestination
Description copied from class:AbstractProxyServlet
Checks the givenhost
andport
against whitelist and blacklist.- Overrides:
validateDestination
in classAbstractProxyServlet
- Parameters:
host
- the host to checkport
- the port to check- Returns:
- true if it is allowed to be proxy to the given host and port
-