Пользовательский фильтр безопасности Spring OAuth2 не активирован - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь добавить пользовательский фильтр входа 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 использовал мой фильтр для входа в систему? Почему мой фильтр не активен?

...