@EnableOAuth2Sso 和 csrf
@EnableOAuth2Sso and csrf
我正在尝试为网关、UI、资源构建一个完整的 sample code。除了我尝试做 post .
之外,每件事都很完美
我首先注意到我有两个 csrf,一个来自网关,一个来自 UI。所以我的决定 我不确定是否正确 是在 UI 上禁用 csrf 并将其保留在网关(Zuul 代理)上,但我无法做到这一点。
我不知道应该扩展哪个适配器 WebSecurityConfigurerAdapter
或 ResourceServerConfigurerAdapter
一旦我声明 WebSecurityConfigurerAdapter
整个 OAuth2Sso 停止工作,我的访问被拒绝并且 ResourceServerConfigurerAdapter
似乎没有做任何事情。
起初我想在 @EnableZuulProxy
上禁用 csrf 和
@EnableOAuth2Sso
基于此 answer 我发现 @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 我也添加设置security.oauth2.resource.filter-order=3
。参见 https://github.com/spring-projects/spring-security-oauth/issues/1016
我正在尝试为网关、UI、资源构建一个完整的 sample code。除了我尝试做 post .
之外,每件事都很完美我首先注意到我有两个 csrf,一个来自网关,一个来自 UI。所以我的决定 我不确定是否正确 是在 UI 上禁用 csrf 并将其保留在网关(Zuul 代理)上,但我无法做到这一点。
我不知道应该扩展哪个适配器 WebSecurityConfigurerAdapter
或 ResourceServerConfigurerAdapter
一旦我声明 WebSecurityConfigurerAdapter
整个 OAuth2Sso 停止工作,我的访问被拒绝并且 ResourceServerConfigurerAdapter
似乎没有做任何事情。
起初我想在 @EnableZuulProxy
上禁用 csrf 和
@EnableOAuth2Sso
基于此 answer 我发现 @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 我也添加设置security.oauth2.resource.filter-order=3
。参见 https://github.com/spring-projects/spring-security-oauth/issues/1016