alvarop.gl https://alvarop.gl Fri, 09 Apr 2021 17:19:42 +0000 en-US hourly 1 https://wordpress.org/?v=5.6.14 CORS en Spring. No es lo mismo WebMVC que DataRest https://alvarop.gl/cors-en-spring-no-es-lo-mismo-webmvc-que-datarest/ Fri, 12 Feb 2021 09:30:32 +0000 http://alvarop.gl/?p=57 Si estás usando Spring Data Rest (por ejemplo con @RepositoryRestResource) y estás tratando de configurar CORS en tu API con spring boot quizá hayas probado implementando el método WebMvcConfigurer::addCorsMappings y no te ha funcionado

Eso es porque todas las respuestas que puedas encontrar en google te dirán que uses ese método o añadir la anotación @CrossOrigin a tus controladores. En mi caso trataba de evitar la anotación para no tener que ir controlador por controlador cambiando la anotación, a parte de que quería configurar el allowedHost desde el application.yml.

Entonces, la solución que encontré es implementar el método de RepositoryRestConfigurer:

@Configuration
    public static class GlobalRepositoryRestConfigurer implements RepositoryRestConfigurer {
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.getCorsRegistry().addMapping("/**")
                    .allowedOrigins("http://localhost:3000")
                    .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
                    .allowCredentials(true)
                    .maxAge(3600);
        }
    }

Ojocuidado porque si tienes controladores de ambos tipos (Data Rest y WebMVC) tendrá que tener los dos métodos.

]]>