Я использовал для этого
Там есть метод
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
Через этот метод проходит аутентификация. Мы как бы создаем прокси для этого класса.
То есть первым в этом методе мы делаем
final OAuth2User oAuth2User = super.loadUser(userRequest);
Потом OAuth2User преобразовываем в нужную нам сушность и сохраняем ее в бд или обновляем. И делаем любые другие необходимые манипуляции.
Далее возвращаем
return new DefaultOAuth2User(appUserAllPermission, attributes, "id");
Единственное я не знаю, как перебросить на другую страничку в данном случае. Так же хочу отметить, что Oauth2 у нас тоже собственной реализации, но принцип вроде один и тот же.