CorsConfig.java
package com.wavii.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import java.util.List;
/**
* Configuración de CORS (Cross-Origin Resource Sharing).
* Permite que el frontend (Expo/Native) se comunique con el backend desde diferentes orÃgenes.
*
* @author eduglezexp
*/
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.setAllowedOriginPatterns(List.of(
"http://localhost:*",
"exp://*",
"http://10.*",
"http://192.168.*"
));
config.setAllowedHeaders(List.of(
"Origin",
"Content-Type",
"Accept",
"Authorization",
"X-Requested-With"
));
config.setAllowedMethods(List.of(
"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"
));
config.setExposedHeaders(List.of("Authorization"));
config.setMaxAge(3600L);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}