@ EnableOAuth2Sso和csrf

时间:2017-06-16 19:04:48

标签: spring-security spring-oauth2 spring-cloud-security

我正在尝试为Gateway,UI,Resource构建一个完整的sample code。除非我试图发帖,否则每件事情都很完美。

我首先注意到我有一个来自网关的双csrf和来自UI的一个。所以我的决定我不确定是否正确是禁用UI上的csrf并将其保留在网关(Zuul代理)上,但我无法做到这一点。

我无法分辨哪个适配器应该WebSecurityConfigurerAdapterResourceServerConfigurerAdapter

一旦我声明WebSecurityConfigurerAdapter整个OAuth2Sso停止工作并且我被拒绝访问,ResourceServerConfigurerAdapter似乎没有做任何事情。

首先,我想在@EnableZuulProxy上禁用csrf @EnableOAuth2Sso

1 个答案:

答案 0 :(得分:0)

基于此answer我发现@EnableOAuth2Sso应该在同一个WebSecurityConfigurerAdapter上,如果存在,或者我们最终会有2个适配器,这样做会修复所有内容

@Configuration
@EnableOAuth2Sso
public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {


    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf()
                .disable()
                //.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
                //.and()
                .authorizeRequests()
                .anyRequest().authenticated();

    }
}

在春季启动时1.5.8我还添加了设置security.oauth2.resource.filter-order=3。见https://github.com/spring-projects/spring-security-oauth/issues/1016