第十五章 CORS - HTTP请求控制
Spring 框架为 CORS 提供了一系列的支持。CORS 的处理在 Spring Security 之前,因为此时的请求不包含任何 cookie(JSESSIONID)。
处理CORS 最简单的方法是使用 CorsFilter,通过配置一个 CorsConfigurationSource,可以将 CorsFilter 与 Spring Security 集成。
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void config(HttpSecurity http) throws Exception {
http
// 默认情况下使用名为 corsConfigurationSource 的bean
// 这里可以省略指定 CorsConfigurationSOurce
.cors().and()
...
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration config = new CorsConfiguration();
config.setAllowedOrigins(Arrays.asList("https://example.com"));
config.setAllowedMethods(Arrays.asList("GET","POST"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return source;
}
}