0

我正在尝试为 Gateway、UI、Resource构建完整的示例代码。一切都很完美,除非我尝试发帖。

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

我不知道我应该扩展什么适配器WebSecurityConfigurerAdapterResourceServerConfigurerAdapter

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

起初我想禁用 csrf@EnableZuulProxy并且 @EnableOAuth2Sso

4

1 回答 1

0

基于这个答案,我发现如果存在一个@EnableOAuth2Sso应该是相同的WebSecurityConfigurerAdapter,否则我们最终会拥有 2 个 Adapter ,这样做会修复所有事情

@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();

    }
}

在 spring boot 1.5.8 上,我还添加了 set security.oauth2.resource.filter-order=3。见https://github.com/spring-projects/spring-security-oauth/issues/1016

于 2017-06-17T09:54:34.793 回答