Class BalancerServlet

  • All Implemented Interfaces:
    java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

    public class BalancerServlet
    extends ProxyServlet
    See Also:
    Serialized Form
    • Field Detail

      • BALANCER_MEMBER_PREFIX

        private static final java.lang.String BALANCER_MEMBER_PREFIX
        See Also:
        Constant Field Values
      • FORBIDDEN_CONFIG_PARAMETERS

        private static final java.util.List<java.lang.String> FORBIDDEN_CONFIG_PARAMETERS
      • REVERSE_PROXY_HEADERS

        private static final java.util.List<java.lang.String> REVERSE_PROXY_HEADERS
      • JSESSIONID_URL_PREFIX

        private static final java.lang.String JSESSIONID_URL_PREFIX
        See Also:
        Constant Field Values
      • counter

        private final java.util.concurrent.atomic.AtomicLong counter
      • _stickySessions

        private boolean _stickySessions
      • _proxyPassReverse

        private boolean _proxyPassReverse
    • Constructor Detail

      • BalancerServlet

        public BalancerServlet()
    • Method Detail

      • init

        public void init()
                  throws javax.servlet.ServletException
        Overrides:
        init in class AbstractProxyServlet
        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

        private java.util.Set<java.lang.String> getBalancerNames()
                                                          throws javax.servlet.ServletException
        Throws:
        javax.servlet.ServletException
      • rewriteTarget

        protected java.lang.String rewriteTarget​(javax.servlet.http.HttpServletRequest request)
        Overrides:
        rewriteTarget in class AbstractProxyServlet
      • getBalancerMemberNameFromSessionId

        private java.lang.String getBalancerMemberNameFromSessionId​(javax.servlet.http.HttpServletRequest request)
      • getBalancerMemberNameFromSessionCookie

        private java.lang.String getBalancerMemberNameFromSessionCookie​(javax.servlet.http.HttpServletRequest request)
      • getBalancerMemberNameFromURL

        private java.lang.String getBalancerMemberNameFromURL​(javax.servlet.http.HttpServletRequest request)
      • extractBalancerMemberNameFromSessionId

        private java.lang.String extractBalancerMemberNameFromSessionId​(java.lang.String sessionId)
      • filterServerResponseHeader

        protected java.lang.String filterServerResponseHeader​(javax.servlet.http.HttpServletRequest request,
                                                              Response serverResponse,
                                                              java.lang.String headerName,
                                                              java.lang.String headerValue)
        Overrides:
        filterServerResponseHeader in class AbstractProxyServlet
      • isBackendLocation

        private boolean isBackendLocation​(java.net.URI locationURI)
      • validateDestination

        public boolean validateDestination​(java.lang.String host,
                                           int port)
        Description copied from class: AbstractProxyServlet
        Checks the given host and port against whitelist and blacklist.
        Overrides:
        validateDestination in class AbstractProxyServlet
        Parameters:
        host - the host to check
        port - the port to check
        Returns:
        true if it is allowed to be proxy to the given host and port