Package 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
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

Modifier and Type
Method
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 Details

### 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 Details

### 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