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;
|
}
|
}
|