Spring Security注销不适用于Spring 4 CORS
问题内容:
最近,我在 Spring 4中* 尝试了新的内置 CORS-Support 。这个功能很棒,我想在 Spring Boot /
AngularJS
应用程序中实现它。 * __
所有请求都可以正常工作,但是我无法注销用户,因为
OPTIONS
-Request/logout
是由 Spring Security
处理的。
可以OPTIONS
在 Spring Security 之前处理-Request,还是应该在其中附加 CORS-
HeadersLogoutSuccessHandler
?
问题答案:
使用Spring
Security时,建议使用CorsFilter。您将要确保订购CorsFilter
Spring
Security之前的产品FilterChainProxy
。
对于此问题,可能只需要注册注销URL即可。例如:
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); // you USUALLY want this
// likely you should limit this to specific origins
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("GET");
config.addAllowedMethod("POST");
config.addAllowedMethod("PUT");
source.registerCorsConfiguration("/logout", config);
return new CorsFilter(source);
}