Я пытаюсь добавить пользовательский фильтр входа OAuth2 в систему безопасности Spring, но, похоже, он не активируется, когда должен. Встроенный фильтр входа в систему sso / oauth2 Spring Security выполняет процесс входа в систему вместо моего фильтра.
Вот код моего пользовательского (extended
) WebSecurityConfigurerAdapter
: https://pastebin.com/pF7DgFN6
Это часть, где я создаю SSO-фильтр, который я пытаюсь добавить:
public Filter ssoFilter() {
CompositeFilter filter = new CompositeFilter();
List<Filter> filters = new ArrayList<>();
SimpleUrlAuthenticationSuccessHandler successHandler = new SimpleUrlAuthenticationSuccessHandler();
successHandler.setAlwaysUseDefaultTargetUrl(true);
successHandler.setDefaultTargetUrl("/loginSuccess");
// Google
OAuth2ClientAuthenticationProcessingFilter googleFilter = new OAuth2ClientAuthenticationProcessingFilter("/login/google");
OAuth2RestTemplate googleTemplate = new OAuth2RestTemplate(google(), oAuth2ClientContext());
googleFilter.setRestTemplate(googleTemplate);
UserInfoTokenServices googleTokenServices = new UserInfoTokenServices(googleResource().getUserInfoUri(), google().getClientId());
googleTokenServices.setRestTemplate(googleTemplate);
googleTokenServices.setPrincipalExtractor(googlePrincipalExtractor());
googleTokenServices.setAuthoritiesExtractor(googleAuthoritiesExtractor());
googleFilter.setTokenServices(googleTokenServices);
googleFilter.setAuthenticationSuccessHandler(successHandler);
filters.add(googleFilter);
filter.setFilters(filters);
return filter;
}
Как мне добиться, чтобы Spring использовал мой фильтр для входа в систему? Почему мой фильтр не активен?