anchor.diff:  This predicate extracts the URI template variables (like `segment` defined in the example above) as a map of names and values and places it in the `ServerWebExchange.getAttributes()` with a key defined in `PathRoutePredicate.URL_PREDICATE_VARS_ATTR`. Those values are then available for use by <<gateway-route-filters,WebFilter Factorys>>
   
   === Query Route Predicate Factory
  -TODO: document Query Route Predicate Factory
  +The Query Route Predicate Factory takes two parameters: a required `param` and an optional `regexp`.
  +
  +.application.yml
  +[source,yaml]
  +----
  +spring:
  +  cloud:
  +    gateway:
  +      routes:
  +      # =====================================
  +      - id: query_route
  +        uri: http://example.org
  +        predicates:
  +        - Query=baz
  +----
  +
  +This route would match if the request contained a `baz` query parameter.
  +
  +.application.yml
  +[source,yaml]
  +----
  +spring:
  +  cloud:
  +    gateway:
  +      routes:
  +      # =====================================
  +      - id: query_route
  +        uri: http://example.org
  +        predicates:
  +        - Query=foo, ba.
  +----
  +
  +This route would match if the request contained a `foo` query parameter whose value matched the `ba.` regexp, so `bar` and `baz` would match.
  +
   
   === RemoteAddr Route Predicate Factory
  -TODO: document RemoteAddr Route Predicate Factory
  +The RemoteAddr Route Predicate Factory takes a list (min size 1) of CIDR-notation strings, e.g. `192.168.0.1/16` (where `192.168.0.1` is an IP address and `16` is a subnet mask.
  +
  +.application.yml
  +[source,yaml]
  +----
  +spring:
  +  cloud:
  +    gateway:
  +      routes:
  +      # =====================================
  +      - id: remoteaddr_route
  +        uri: http://example.org
  +        predicates:
  +        - RemoteAddr=192.168.1.1/24
  +----
  +
  +This route would match if the remote address of the request was, for example, `192.168.1.10`.
   
   [[gateway-route-filters]]
   == WebFilter Factorys
  
positive.code: Route filters allow the modification of the incoming HTTP request or outgoing HTTP response in some manner. Route filters are scoped to a particular route. Spring Cloud Gateway includes many built-in WebFilter Factories.
  
  === AddRequestHeader WebFilter Factory
  TODO: document AddRequestHeader WebFilter Factory
  
  === AddRequestParameter WebFilter Factory
  TODO: document AddRequestParameter WebFilter Factory
  
  === AddResponseHeader WebFilter Factory
  TODO: document AddResponseHeader WebFilter Factory
  
  === Hystrix WebFilter Factory
  TODO: document Hystrix WebFilter Factory
  
  === PrefixPath WebFilter Factory
  TODO: document PrefixPath WebFilter Factory
  
  === RedirectTo WebFilter Factory
  TODO: document RedirectTo WebFilter Factory
  
  === RemoveNonProxyHeaders WebFilter Factory
  TODO: document RemoveNonProxyHeaders WebFilter Factory
  
  === RemoveRequestHeader WebFilter Factory
  TODO: document RemoveRequestHeader WebFilter Factory
  
  === RemoveResponseHeader WebFilter Factory
  TODO: document RemoveResponseHeader WebFilter Factory
  
  === RewritePath WebFilter Factory
  TODO: document RewritePath WebFilter Factory
  
  === SecureHeaders WebFilter Factory
  TODO: document SecureHeaders WebFilter Factory
  
  === SetPath WebFilter Factory
  TODO: document SetPath WebFilter Factory
  
  === SetResponseHeader WebFilter Factory
  TODO: document SetResponseHeader WebFilter Factory
  
  === SetStatus WebFilter Factory
  TODO: document SetStatus WebFilter Factory
  
  == Global Filters
  
  
negative.code: Spring Cloud Gateway matches routes as part of the Spring WebFlux `HandlerMapping` infrastructure. Spring Cloud Gateway includes many built-in Route Predicate Factorys. All of these predicates match on different attributes of the HTTP request. Multiple Route Predicate Factorys can be combined and are combined via logical `and`.
  
  === After Route Predicate Factory
  The After Route Predicate Factory takes one parameter, a datetime. This predicate matches requests that happen after the current datetime.
  
  .application.yml
  [source,yaml]
  ----
  spring:
    cloud:
      gateway:
        routes:
        # =====================================
        - id: after_route
          uri: http://example.org
          predicates:
          - After=2017-01-20T17:42:47.789-07:00[America/Denver]
  ----
  
  This route matches any request after Jan 20, 2017 17:42 Mountain Time (Denver).
  
  === Before Route Predicate Factory
  The Before Route Predicate Factory takes one parameter, a datetime. This predicate matches requests that happen before the current datetime.
  
  .application.yml
  [source,yaml]
  ----
  spring:
    cloud:
      gateway:
        routes:
        # =====================================
        - id: before_route
          uri: http://example.org
          predicates:
          - Before=2017-01-20T17:42:47.789-07:00[America/Denver]
  ----
  
  This route matches any request before Jan 20, 2017 17:42 Mountain Time (Denver).
  
  === Between Route Predicate Factory
  The Between Route Predicate Factory takes two parameters, datetime1 and datetime2. This predicate matches requests that happen after datetime1 and before datetime2. The datetime2 parameter must be after datetime1.
  
  .application.yml
  [source,yaml]
  ----
  spring:
    cloud:
      gateway:
        routes:
        # =====================================
        - id: between_route
          uri: http://example.org
          predicates:
          - Betweeen=2017-01-20T17:42:47.789-07:00[America/Denver], 2017-01-21T17:42:47.789-07:00[America/Denver]
  ----
  
  This route matches any request after Jan 20, 2017 17:42 Mountain Time (Denver) and before Jan 21, 2017 17:42 Mountain Time (Denver). This could be useful for maintenance windows.
  
  === Cookie Route Predicate Factory
  The Cookie Route Predicate Factory takes two parameters, the cookie name and a regular expression. This predicate matches cookies that have the given name and the value matches the regular expression.
  