People, I’m about to show how you can enable CORS globally in your spring boot application.
1. Configuration
Create a configuration class and annotate with @Configiration anntation. Please make sure that this class is being scanned by component scanner. If not use annotation @ComponentScan to scan your package. Subpackages will automatically be scanned.
@Configuration
public class AppConfig {
}
2. Configure CORS Filter
@Order(2)
@Configuration
public class AppConfig {
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("PATCH");
config.addAllowedMethod("GET");
config.addAllowedMethod("POST");
config.addAllowedMethod("PUT");
config.addAllowedMethod("DELETE");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
3. Enable OPTIONS Request
Additionally you can enable OPTIONS request so that freakin javascript doesn’t complain.
You need to configure another Bean called DispatcherServlet
@Bean(name = DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME)
public DispatcherServlet dispatcherServlet() {
DispatcherServlet dispatcherServlet = new DispatcherServlet();
dispatcherServlet.setDispatchOptionsRequest(true);
return dispatcherServlet;
}
Well, you’re in a position to test your app right now.
Thank u soooooo much.
U saved me from breaking my code.