Class XForwardedRemoteAddressResolver

    • Method Detail

      • maxTrustedIndex

        public static XForwardedRemoteAddressResolver maxTrustedIndex​(int maxTrustedIndex)
        trusted IP address found in the X-Forwarded-For header (when present). This configuration exists to prevent a malicious actor from spoofing the value of the X-Forwarded-For header. If you know that your gateway application is only accessible from a a trusted load balancer, then you can trust that the load balancer will append a valid client IP address to the X-Forwarded-For header, and should use a value of `1` for the `maxTrustedIndex`. Given the X-Forwarded-For value of [0.0.0.1, 0.0.0.2, 0.0.0.3]:
         maxTrustedIndex -> result
        
         [MIN_VALUE,0] -> IllegalArgumentException
         1 -> 0.0.0.3
         2 -> 0.0.0.2
         3 -> 0.0.0.1
         [4, MAX_VALUE] -> 0.0.0.1
         
        Parameters:
        maxTrustedIndex - correlates to the number of trusted proxies expected in front of Spring Cloud Gateway (index starts at 1).
        Returns:
        a XForwardedRemoteAddressResolver which extracts the last
      • resolve

        public InetSocketAddress resolve​(org.springframework.web.server.ServerWebExchange exchange)
        The X-Forwarded-For header contains a comma separated list of IP addresses. This method parses those IP addresses into a list. If no X-Forwarded-For header is found, an empty list is returned. If multiple X-Forwarded-For headers are found, an empty list is returned out of caution.
        Specified by:
        resolve in interface RemoteAddressResolver
        Returns:
        The parsed values of the X-Forwarded-Header.