尝试使用http.csrf().disable()
在edge / zuul中禁用CSRF。
但仍然有csrfFilter可用于过滤链@位置4。
我甚至设置了属性spring.enableCsrf: false
。仍然csrfFilter启动,我的ajax请求得到403错误。
如何使用Zuul和外部OAuth服务器(UAA)禁用CSRF?
答案 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();
}
}