Spring Security Logout不适用于Spring 4 CORS

fab*_*bwu 4 java spring spring-mvc spring-security angularjs

最近我在Spring 4中尝试了新的内置CORS-Support.这个功能很棒,我想在Spring Boot/AngularJS应用程序中实现它.

所有请求都正常但我无法注销我的用户,因为OPTIONS-Request to /logoutSpring Security处理.

是否有可能处理OPTIONS之前-请求的Spring Security或者我应该附上CORS报头LogoutSuccessHandler

Rob*_*nch 7

使用Spring Security时,建议使用CorsFilter.您需要确保CorsFilter在Spring Security之前订购FilterChainProxy.

有关使用的详细信息,请参阅Spring Data Rest和CorsCorsFilter.对于此问题,您可能希望仅注册注销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);
}
Run Code Online (Sandbox Code Playgroud)