@EnableOAuth2Sso и csrf

Я пытаюсь создать полный пример кода для шлюза, пользовательского интерфейса, ресурсов. Все работало отлично, кроме случаев, когда я пытался сделать пост.

Сначала я заметил, что у меня есть двойной CSRF один из шлюза и один из пользовательского интерфейса. Поэтому мое решение, в котором я не уверен, является правильным, было отключить csrf в пользовательском интерфейсе и сохранить его на шлюзе (Zuul Proxy), но я не смог этого сделать.

Я не мог сказать, какой адаптер я должен расширить WebSecurityConfigurerAdapter или же ResourceServerConfigurerAdapter

Как только я объявлю WebSecurityConfigurerAdapter весь OAuth2Sso перестает работать, и я получил отказ в доступе и ResourceServerConfigurerAdapter похоже, ничего не делает.

Сначала я хотел бы отключить CSRF на @EnableZuulProxy а также@EnableOAuth2Sso

1 ответ

Решение

На основании этого ответа я узнал, что @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

Другие вопросы по тегам