我正在使用带有OAuth2的Spring Security。除登录成功和失败处理程序外,一切正常。
像在 Spring 网络安全中一样,OAuth2没有明确定义成功和失败处理程序 Hook 来更新数据库并相应地设置响应。
我需要扩展什么过滤器,它在Spring Security过滤器链中的位置应该是什么?
最佳答案
为successHandler
方法指定failureHandler
和oauth2login
:
@Configuration
@EnableWebSecurity
class SecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${successUrl}")
private String successUrl;
@Value("${failureUrl}")
private String failureUrl;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.oauth2Login()
.successHandler(successHandler())
.failureHandler(failureHandler());
}
@Bean
SimpleUrlAuthenticationSuccessHandler successHandler() {
return new SimpleUrlAuthenticationSuccessHandler(successUrl);
}
@Bean
SimpleUrlAuthenticationFailureHandler failureHandler() {
return new SimpleUrlAuthenticationFailureHandler(failureUrl);
}
}
经过Spring Security 5.0.6测试