Configuración de CORS en un proyecto Spring Boot
En este post tratare de ser lo más breve posible. Veremos como solucionar lo problemas más comunes de CORS, los cuales son:
- spring boot cors allow all origins
- crossoriginorigins spring boot
- spring security cors
- cors enabled spring boot
- disable cors spring boot
- invalid cors request spring boot
- cors spring boot angular
- has been blocked by cors policy spring boot
Veremos como configurar CORS en un proyecto de Spring Boot de forma global y de forma individual por cada método.
Spring Boot CORS: Configuracion indivisual por metodos rest
Si quieres configurar los origenes de CORS para un metodo en particular, solo debes pegar @CrossOrigin(origins = "http://localhost:9000")
Quedaría más o menos asi.
@CrossOrigin(origins = "http://localhost:9000")
@GetMapping("/greeting")
public Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {
System.out.println("==== in greeting ====");
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
Spring Boot CORS: Configuración global
Esta es un configuración global, que se debe pegar en la clase Main o clase que inicializa el proyecto.
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/greeting-javaconfig").allowedOrigins("http://localhost:9000");
}
};
}
Asi que una vez pegado el metodo, nuestra clase inicializadora quedaria más o menos asi.
@SpringBootApplication
public class CrudApplication {
public static void main(String[] args) {
SpringApplication.run(CrudApplication.class, args);
}
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:4200").allowedMethods("*").allowedHeaders("*");
}
};
}
}
Nota: si quieres que acepten a todos los origenes, cambia http://localhost:4200 por /** y así aceptara cualquier origen.
Obviamente teniendo en cuenta que nuestro proyecto tiene la siguiente estructura.
Video-tutorial: Como solucionar problemas de CORS de Spring Boot
En este video explico de manera detallada ¿porque aparecen los errores o problemas de CORS en una aplicación o proyecto en Spring Boot?, así como también, explico como solucionarlo.
Documentación oficial
Puedes darle una revisión a la documentación oficial de Spring Boot sobre CORS en donde explican mas a fondo este tema.
Descargar proyectos
Aqui les dejo el proyecto CRUD que he usado durante este tutorial para que lo puedan descargar.
En realidad son dos proyectos separados, uno es el front y otro es el backend.
El front lo descargas y lo corres con:
ng serve
Y el backend simplemente lo importas en STS y lo corres como un proyecto Spring Boot.
Si quieres conocer otros artículos parecidos a Configuración de CORS en un proyecto Spring Boot puedes visitar la categoría Java.
Entradas relacionadas