@ktyz1992

Как проверить и сохранить данные о принципале (пользователе) в БД в момент аутентификации?

Здравствуйте! Я использую Spring Security для OAuth2 аутентификации на сайте. Аутентификация через Google и Github проходит нормально - защищённые страницы показываться, данные о принципале получается извлекать. Однако требуется хранение данных о зарегистрированных пользователях в локальной БД. Как перехватить момент аутентификации и в случае необнаружения такого пользователя:
1. перебросить на страничку сайта с внесением дополнительной информации о пользователе;
2. записать нового пользователя в БД.
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 1
upagge
@upagge
Веду блог blog.upagge.ru
Я использовал для этого

5tcpft-ss-tutxjp8emaoynfkda.png

Там есть метод

public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {


Через этот метод проходит аутентификация. Мы как бы создаем прокси для этого класса.

То есть первым в этом методе мы делаем

final OAuth2User oAuth2User = super.loadUser(userRequest);


Потом OAuth2User преобразовываем в нужную нам сушность и сохраняем ее в бд или обновляем. И делаем любые другие необходимые манипуляции.

Далее возвращаем

return new DefaultOAuth2User(appUserAllPermission, attributes, "id");


Единственное я не знаю, как перебросить на другую страничку в данном случае. Так же хочу отметить, что Oauth2 у нас тоже собственной реализации, но принцип вроде один и тот же.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
The AnyLogic Company Санкт-Петербург
от 180 000 ₽
Rubbles (SBDA Group) Москва
от 180 000 до 240 000 ₽
08 мар. 2021, в 07:04
3000 руб./за проект
08 мар. 2021, в 06:23
12000 руб./за проект
08 мар. 2021, в 04:37
350000 руб./за проект