@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