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 ProxyServlet
ProxyServlet.ProxyInputStreamContentProvider, ProxyServlet.ProxyResponseListener, ProxyServlet.TransparentNested classes/interfaces inherited from class AbstractProxyServlet
AbstractProxyServlet.ProxyContinueProtocolHandler, AbstractProxyServlet.TransparentDelegate -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<BalancerServlet.BalancerMember> private booleanprivate booleanprivate static final Stringprivate final AtomicLongprivate static final Stringprivate static final StringFields inherited from class AbstractProxyServlet
_log, CLIENT_REQUEST_ATTRIBUTE, HOP_HEADERS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringextractBalancerMemberNameFromSessionId(String sessionId) protected StringfilterServerResponseHeader(javax.servlet.http.HttpServletRequest request, Response serverResponse, String headerName, String headerValue) private BalancerServlet.BalancerMemberprivate StringgetBalancerMemberNameFromSessionCookie(javax.servlet.http.HttpServletRequest request) private StringgetBalancerMemberNameFromSessionId(javax.servlet.http.HttpServletRequest request) private StringgetBalancerMemberNameFromURL(javax.servlet.http.HttpServletRequest request) voidinit()private voidprivate voidprivate voidprivate booleanisBackendLocation(URI locationURI) protected StringrewriteTarget(javax.servlet.http.HttpServletRequest request) private BalancerServlet.BalancerMemberselectBalancerMember(javax.servlet.http.HttpServletRequest request) private voidbooleanvalidateDestination(String host, int port) Checks the givenhostandportagainst whitelist and blacklist.Methods inherited from class ProxyServlet
newProxyResponseListener, onContinue, onResponseContent, proxyRequestContent, serviceMethods inherited from class 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, setTimeoutMethods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, serviceMethods 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:
initin 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
-
rewriteTarget
- Overrides:
rewriteTargetin 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:
filterServerResponseHeaderin classAbstractProxyServlet
-
isBackendLocation
-
validateDestination
Description copied from class:AbstractProxyServletChecks the givenhostandportagainst whitelist and blacklist.- Overrides:
validateDestinationin 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
-