Posted under Spring & Spring Boot
Permalink
Tags Spring, SpringBoot
I was using this to add CORS headers dynamically based on application.properties.
However initially Spring stubbornly refused to add the headers.
My initial (incorrect) code was as follows:-
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Autowired
private ConfigProperties config;
@Override
public void addCorsMappings(CorsRegistry registry) {
config.getCorsOriginsAllowed().forEach(origin -> registry.addMapping(origin).allowedOrigins(origin));
}
}
The error was that I had used origin both as the registry mapping key and the resulting allowed origin.
The correct code should have used a URL path as the mapping key. The correct replacement line was as follows:-
config.getCorsOriginsAllowed().forEach(origin -> registry.addMapping("/**").allowedOrigins(origin));
This fixed version mapped every URL path to the given set of origins, using “/**” as above.
This fixed the problem.
This post here by Baeldung and this Spring guide post detail the various ways to add CORS headers, both in a fixed static way using annotations, and in dynamic ways such as the above.
Comments Off on Spring Boot not adding CORS headers in response when using WebMvcConfigurer