public class BalancerServlet extends ProxyServlet
Modifier and Type | Class and Description |
---|---|
private static class |
BalancerServlet.BalancerMember |
ProxyServlet.ProxyInputStreamContentProvider, ProxyServlet.ProxyResponseListener, ProxyServlet.Transparent
AbstractProxyServlet.ProxyContinueProtocolHandler, AbstractProxyServlet.TransparentDelegate
Modifier and Type | Field and Description |
---|---|
private java.util.List<BalancerServlet.BalancerMember> |
_balancerMembers |
private boolean |
_proxyPassReverse |
private boolean |
_stickySessions |
private static java.lang.String |
BALANCER_MEMBER_PREFIX |
private java.util.concurrent.atomic.AtomicLong |
counter |
private static java.util.List<java.lang.String> |
FORBIDDEN_CONFIG_PARAMETERS |
private static java.lang.String |
JSESSIONID |
private static java.lang.String |
JSESSIONID_URL_PREFIX |
private static java.util.List<java.lang.String> |
REVERSE_PROXY_HEADERS |
_log, CLIENT_REQUEST_ATTRIBUTE, HOP_HEADERS
Constructor and Description |
---|
BalancerServlet() |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
extractBalancerMemberNameFromSessionId(java.lang.String sessionId) |
protected java.lang.String |
filterServerResponseHeader(javax.servlet.http.HttpServletRequest request,
Response serverResponse,
java.lang.String headerName,
java.lang.String headerValue) |
private BalancerServlet.BalancerMember |
findBalancerMemberByName(java.lang.String name) |
private java.lang.String |
getBalancerMemberNameFromSessionCookie(javax.servlet.http.HttpServletRequest request) |
private java.lang.String |
getBalancerMemberNameFromSessionId(javax.servlet.http.HttpServletRequest request) |
private java.lang.String |
getBalancerMemberNameFromURL(javax.servlet.http.HttpServletRequest request) |
private java.util.Set<java.lang.String> |
getBalancerNames() |
void |
init() |
private void |
initBalancers() |
private void |
initProxyPassReverse() |
private void |
initStickySessions() |
private boolean |
isBackendLocation(java.net.URI locationURI) |
protected java.lang.String |
rewriteTarget(javax.servlet.http.HttpServletRequest request) |
private BalancerServlet.BalancerMember |
selectBalancerMember(javax.servlet.http.HttpServletRequest request) |
private void |
validateConfig() |
boolean |
validateDestination(java.lang.String host,
int port)
Checks the given
host and port against whitelist and blacklist. |
newProxyResponseListener, onContinue, onResponseContent, proxyRequestContent, service
addProxyHeaders, addViaHeader, addXForwardedHeaders, clientRequestStatus, copyRequestHeaders, createHttpClient, createLogger, destroy, expects100Continue, findConnectionHeaders, getBlackListHosts, getHostHeader, getHttpClient, getRequestId, getTimeout, getViaHost, getWhiteListHosts, hasContent, newHttpClient, onClientRequestFailure, onProxyResponseFailure, onProxyResponseSuccess, onProxyRewriteFailed, onServerResponseHeaders, proxyResponseStatus, sendProxyRequest, sendProxyResponseError, setTimeout
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
private static final java.lang.String BALANCER_MEMBER_PREFIX
private static final java.util.List<java.lang.String> FORBIDDEN_CONFIG_PARAMETERS
private static final java.util.List<java.lang.String> REVERSE_PROXY_HEADERS
private static final java.lang.String JSESSIONID
private static final java.lang.String JSESSIONID_URL_PREFIX
private final java.util.List<BalancerServlet.BalancerMember> _balancerMembers
private final java.util.concurrent.atomic.AtomicLong counter
private boolean _stickySessions
private boolean _proxyPassReverse
public void init() throws javax.servlet.ServletException
init
in class AbstractProxyServlet
javax.servlet.ServletException
private void validateConfig() throws javax.servlet.ServletException
javax.servlet.ServletException
private void initStickySessions()
private void initBalancers() throws javax.servlet.ServletException
javax.servlet.ServletException
private void initProxyPassReverse()
private java.util.Set<java.lang.String> getBalancerNames() throws javax.servlet.ServletException
javax.servlet.ServletException
protected java.lang.String rewriteTarget(javax.servlet.http.HttpServletRequest request)
rewriteTarget
in class AbstractProxyServlet
private BalancerServlet.BalancerMember selectBalancerMember(javax.servlet.http.HttpServletRequest request)
private BalancerServlet.BalancerMember findBalancerMemberByName(java.lang.String name)
private java.lang.String getBalancerMemberNameFromSessionId(javax.servlet.http.HttpServletRequest request)
private java.lang.String getBalancerMemberNameFromSessionCookie(javax.servlet.http.HttpServletRequest request)
private java.lang.String getBalancerMemberNameFromURL(javax.servlet.http.HttpServletRequest request)
private java.lang.String extractBalancerMemberNameFromSessionId(java.lang.String sessionId)
protected java.lang.String filterServerResponseHeader(javax.servlet.http.HttpServletRequest request, Response serverResponse, java.lang.String headerName, java.lang.String headerValue)
filterServerResponseHeader
in class AbstractProxyServlet
private boolean isBackendLocation(java.net.URI locationURI)
public boolean validateDestination(java.lang.String host, int port)
AbstractProxyServlet
host
and port
against whitelist and blacklist.validateDestination
in class AbstractProxyServlet
host
- the host to checkport
- the port to check