package com.tcm.training.admin.config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class CorsConfig implements WebMvcConfigurer { @Value("${app.cors.allowed-origin-patterns:*}") private String allowedOriginPatterns; @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOriginPatterns(splitPatterns(allowedOriginPatterns)) .allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS") .allowedHeaders("*") .exposedHeaders("Authorization") .allowCredentials(true) .maxAge(3600); } private String[] splitPatterns(String text) { if (text == null || text.trim().isEmpty()) { return new String[]{"*"}; } String[] parts = text.split(","); for (int i = 0; i < parts.length; i++) { parts[i] = parts[i].trim(); } return parts; } }