Configuración de CORS en un proyecto Spring Boot

cors-solucion-problema-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.

Recomendado:   BUTTONGROUP Y RADIOBUTTON EN JAVA

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.