org.springframework.web.cors.reactive

## Class CorsWebFilter

- java.lang.Object
- - org.springframework.web.cors.reactive.CorsWebFilter

- All Implemented Interfaces:
    WebFilter

      public class CorsWebFilter
      extends Object
      implements WebFilter

  `WebFilter` that handles CORS preflight requests and intercepts CORS simple and actual requests thanks to a `CorsProcessor` implementation (`DefaultCorsProcessor` by default) in order to add the relevant CORS response headers (like `Access-Control-Allow-Origin`) using the provided `CorsConfigurationSource` (for example an `UrlBasedCorsConfigurationSource` instance.

  This is an alternative to Spring WebFlux Java config CORS configuration, mostly useful for applications using the functional API.

  Since:
    5.0
  Author:
    Sebastien Deleuze
  See Also:
    CORS W3C recommendation

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CorsWebFilter(CorsConfigurationSource configSource)` Constructor accepting a `CorsConfigurationSource` used by the filter to find the `CorsConfiguration` to use for each incoming request.
    `CorsWebFilter(CorsConfigurationSource configSource, CorsProcessor processor)` Constructor accepting a `CorsConfigurationSource` used by the filter to find the `CorsConfiguration` to use for each incoming request and a custom `CorsProcessor` to use to apply the matched `CorsConfiguration` for a request.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `reactor.core.publisher.Mono<Void>` | `filter(ServerWebExchange exchange, WebFilterChain chain)` Process the Web request and (optionally) delegate to the next `WebFilter` through the given `WebFilterChain`.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CorsWebFilter

          public CorsWebFilter(CorsConfigurationSource configSource)

      Constructor accepting a `CorsConfigurationSource` used by the filter to find the `CorsConfiguration` to use for each incoming request.
      See Also:
        `UrlBasedCorsConfigurationSource`

    - #### CorsWebFilter

          public CorsWebFilter(CorsConfigurationSource configSource,
                               CorsProcessor processor)

      Constructor accepting a `CorsConfigurationSource` used by the filter to find the `CorsConfiguration` to use for each incoming request and a custom `CorsProcessor` to use to apply the matched `CorsConfiguration` for a request.
      See Also:
        `UrlBasedCorsConfigurationSource`

  - ### Method Detail

    - #### filter

          public reactor.core.publisher.Mono<Void> filter(ServerWebExchange exchange,
                                                          WebFilterChain chain)

      Description copied from interface: `WebFilter`
      Process the Web request and (optionally) delegate to the next `WebFilter` through the given `WebFilterChain`.
      Specified by:
        `filter` in interface `WebFilter`
      Parameters:
        `exchange` - the current server exchange
        `chain` - provides a way to delegate to the next filter
      Returns:
        `Mono<Void>` to indicate when request processing is complete