spring-cloud:禁用CSRF

时间:2016-10-30 09:24:53

标签: spring-boot spring-cloud-netflix spring-oauth2

尝试使用http.csrf().disable()在edge / zuul中禁用CSRF。 但仍然有csrfFilter可用于过滤链@位置4。 我甚至设置了属性spring.enableCsrf: false。仍然csrfFilter启动,我的ajax请求得到403错误。

如何使用Zuul和外部OAuth服务器(UAA)禁用CSRF?

1 个答案:

答案 0 :(得分:1)

<强> Configure CSRF Protection 一些框架通过使用户的会话无效来处理无效的CSRF令牌,但这会导致其自身的问题。相反,默认情况下,Spring Security的CSRF保护将产生HTTP 403访问被拒绝。这可以通过配置AccessDeniedHandler以不同方式处理InvalidCsrfTokenException来自定义。

从Spring Security 4.0开始,默认情况下使用XML配置启用CSRF保护。如果要禁用CSRF保护,可以在下面看到相应的XML配置。

<http>
    <!-- ... -->
    <csrf disabled="true"/>
</http>

默认情况下,Java Configuration会启用CSRF保护。如果要禁用CSRF,可以在下面看到相应的Java配置。有关如何配置CSRF保护的其他自定义,请参阅csrf()的Javadoc。

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
    .csrf().disable();
}
}