gpt4 book ai didi

java - 如何更改 OAuth2ClientAuthenticationProcessingFilter 的 successHandler?

转载 作者:行者123 更新时间:2023-12-02 11:33:20 25 4
gpt4 key购买 nike

我正在使用@EnableOAuth2Sso。但我需要更改 successHandler,以便我可以在登录后更改重定向。

我该怎么做?

我追踪了代码的路径:

@EnableOAuth2Sso ->
OAuth2SsoCustomConfiguration ->
SsoSecurityConfigurer ->
OAuth2ClientAuthenticationConfigurer ->
OAuth2ClientAuthenticationProcessingFilter ->
AbstractAuthenticationProcessingFilter ->
successHandler

该路径中是否有任何地方可以让我更改 successHandler

也许可以在设置后访问过滤器,并修改OAuth2ClientAuthenticationProcessingFilter

最佳答案

您需要创建自己的 OAuth2ClientAuthenticationProcessingFilter 实例并将此过滤器添加到过滤器链中。

下面给出的是片段:`

private OAuth2ClientAuthenticationProcessingFilter oauth2SsoFilter() {
ApplicationContext applicationContext = this.getApplicationContext();
OAuth2SsoProperties sso = applicationContext.getBean(OAuth2SsoProperties.class);
OAuth2RestOperations restTemplate = applicationContext.getBean(UserInfoRestTemplateFactory.class)
.getUserInfoRestTemplate();
ResourceServerTokenServices tokenServices = applicationContext.getBean(ResourceServerTokenServices.class);
OAuth2ClientAuthenticationProcessingFilter filter = new OAuth2ClientAuthenticationProcessingFilter(sso
.getLoginPath());
filter.setRestTemplate(restTemplate);
filter.setTokenServices(tokenServices);
filter.setApplicationEventPublisher(applicationContext);
filter.setAuthenticationSuccessHandler(new YourOwnAuthenticationSuccessHandler());
return filter;
}

可以通过以下方式将过滤器添加到过滤器链:

http.addFilterBefore(oauth2SsoFilter(), BasicAuthenticationFilter.class);

关于java - 如何更改 OAuth2ClientAuthenticationProcessingFilter 的 successHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49121916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com