Как настроить CORS в webflux правильным образом?

Как настроить мой реактивный сервер на webflux для аутентификации всех входящих запросов, включая Preflight запросы от UI?
Изображение к вопросу
  • 24 сентября 2023 г. 11:27
Ответы на вопрос 1
Для настройки CORS (Cross-Origin Resource Sharing) в webflux можно использовать класс `CorsWebFilter`. Вот как вы можете это сделать:

1. Создайте класс, который будет выполнять настройку CORS:

```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.reactive.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;

@Configuration
public class CorsConfig {

    @Bean
    public CorsWebFilter corsWebFilter() {
        CorsConfiguration corsConfig = new CorsConfiguration();
        corsConfig.setAllowCredentials(true);
        corsConfig.addAllowedOrigin("*");
        corsConfig.addAllowedHeader("*");
        corsConfig.addAllowedMethod("*");
        
        return new CorsWebFilter(source -> corsConfig);
    }
}
```

2. В этом классе мы создаем экземпляр `CorsConfiguration` и настраиваем разрешенные оригиналы, заголовки и методы. В данном примере разрешена любая оригинальность (`*`), любые заголовки (`*`) и любые методы (`*`). Вы можете настроить эти значения в соответствии с вашими требованиями.

3. Затем мы создаем и возвращаем экземпляр `CorsWebFilter` с нашей конфигурацией CORS.

4. Добавьте этот класс в свою конфигурацию приложения или включите его автоматическую конфигурацию.

Теперь ваш сервер на webflux будет настроен для обработки CORS-запросов. Это включает в себя авторизацию всех входящих запросов, включая Preflight запросы от пользовательского интерфейса.
Похожие вопросы