Ответ
Нет, не требуется. Поддержка CORS (Cross-Origin Resource Sharing) встроена в стандартные веб-стартеры Spring Boot.
-
Для Spring MVC (
spring-boot-starter-web):@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") .allowedOrigins("https://trusted.com") .allowedMethods("GET", "POST", "PUT"); } }Или точечно с
@CrossOriginна контроллере/методе. -
Для Spring WebFlux (
spring-boot-starter-webflux):@Bean public CorsWebFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin("*"); config.addAllowedMethod("*"); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); return new CorsWebFilter(source); }
CORS — это функция веб-слоя, а не отдельная библиотека.
Ответ 18+ 🔞
Ну, слушай, а то тут некоторые такие, блядь, начинают: "Ой, для CORS надо отдельную либу подключать, овердохуища зависимостей!" Да ни хуя подобного, ёпта!
Это ж, блядь, базовая фича веб-сервера, чтобы браузер не орал "ААА, ЗАПРЕЩЕНО!", когда фронт с одного домена, а API с другого. В Spring Boot это уже в коробке, как эти, блядь, семечки в шелухе.
Смотри, есть два главных пути, как это всё ебучено работает.
Первый путь — для классического Spring MVC (это когда spring-boot-starter-web). Тут всё через конфигурацию, блядь.
Можно глобально настроить, чтобы не пиздеть на каждый контроллер:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**") // Ко всем урлам, что начинаются с /api
.allowedOrigins("https://trusted.com") // Откуда можно лезть
.allowedMethods("GET", "POST", "PUT"); // Какие методы разрешены
}
}
А если лень глобально, можно, блядь, точечно, прямо над контроллером или методом навесить @CrossOrigin. Как пластырь, сука.
Второй путь — для реактивного WebFlux (это когда spring-boot-starter-webflux). Тут уже по-другому, через фильтры, блядь.
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*"); // Внимание! На проде так не делать, это пиздец какой дырявый!
config.addAllowedMethod("*"); // Разрешаем все методы
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config); // Ко всем путям применяем
return new CorsWebFilter(source);
}
Главное, чувак, не ставь allowedOrigin("*") на продакшене, а то потом будешь охуевать, откуда столько запросов с левых доменов. Это как дверь нараспашку оставить, блядь.
Короче, CORS — это не отдельная библиотека, а просто настройка веб-слоя. Всё уже есть, не надо ничего выдумывать, в рот меня чих-пых!