Как настроить CORS Spring Security?

Для настройки межсайтовых запросов (CORS) в Spring Security вам необходимо выполнить несколько шагов.

1. Добавьте зависимость в файл pom.xml вашего проекта:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. Создайте класс-конфигурацию, реализующий интерфейс WebMvcConfigurer. В этом классе вы должны переопределить метод addCorsMappings(). Пример класса-конфигурации:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("http://example.com") // Разрешенный источник
                .allowedMethods("GET", "POST", "PUT", "DELETE") // Разрешенные HTTP-методы
                .allowedHeaders("*") // Разрешенные заголовки HTTP
                .allowCredentials(true) // Разрешить кросс-доменные запросы с использованием аутентификации
                .maxAge(3600); // Максимальное время жизни предварительных ответов в секундах
    }
}

В этом примере происходит настройка CORS для всех URL-путей («/**»), разрешается доступ только с источника "http://example.com", разрешены методы GET, POST, PUT и DELETE, разрешены все заголовки HTTP, разрешены кросс-доменные запросы с использованием аутентификации, и максимальное время жизни предварительных ответов установлено в 3600 секунд.

3. Включите поддержку CORS в подключении Spring Security. Для этого вам нужно создать класс конфигурации, расширяющий WebSecurityConfigurerAdapter, и переопределить метод configure(HttpSecurity http). Пример класса конфигурации:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().csrf().disable();
    }
}

В этом примере включена поддержка CORS (http.cors()) и отключена защита от CSRF (что обычно требуется при использовании CORS).

4. Теперь вы можете запустить ваше приложение и проверить, что CORS настроен правильно.

Важно отметить, что CORS работает на уровне браузера, поэтому проверьте настройки браузера, чтобы убедиться, что он не блокирует запросы к серверу из-за политики безопасности CORS.

Добавление этих настроек в ваш проект Spring Security позволит настроить CORS для вашего приложения на основе ваших требований.