Описание: Абстрагировать данные пользователя OAuth2 от разных провайдеров в единый формат и интегрировать с Spring Security через CustomOAuth2UserService с логикой найти-или-создать пользователя + Добавить поля OAuth2-провайдера в существующую таблицу пользователей через миграцию.
Задачи:
Создать абстрактный интерфейс OAuth2UserInfo в adapters/security/oauth2
Создать OAuth2UserInfoFactory для получения нужной реализации по провайдеру
Создать CustomOAuth2UserService extends DefaultOAuth2UserService
Переопределить метод loadUser() с логикой найти-или-создать пользователя через UserRepository
Создать UserPrincipal implements OAuth2User, UserDetails для представления аутентифицированного пользователя
Обработать OAuth2AuthenticationException для некорректных данных от провайдера
Создать V2__add_oauth2_fields.sql
Добавить поля: provider, provider_id, created_at
Добавить уникальный индекс на (provider, provider_id)
Проверить работу на H2 и PostgreSQL
Ветка: feat/oauth2-user-service-26
Описание: Абстрагировать данные пользователя OAuth2 от разных провайдеров в единый формат и интегрировать с Spring Security через CustomOAuth2UserService с логикой найти-или-создать пользователя + Добавить поля OAuth2-провайдера в существующую таблицу пользователей через миграцию.
Задачи:
- Создать абстрактный интерфейс OAuth2UserInfo в adapters/security/oauth2
- Реализовать конкретные классы: GoogleOAuth2UserInfo, YandexOAuth2UserInfo, VkOAuth2UserInfo
- Создать OAuth2UserInfoFactory для получения нужной реализации по провайдеру
- Создать CustomOAuth2UserService extends DefaultOAuth2UserService
- Переопределить метод loadUser() с логикой найти-или-создать пользователя через UserRepository
- Создать UserPrincipal implements OAuth2User, UserDetails для представления аутентифицированного пользователя
- Обработать OAuth2AuthenticationException для некорректных данных от провайдера
- Создать V2__add_oauth2_fields.sql
- Добавить поля: provider, provider_id, created_at
- Добавить уникальный индекс на (provider, provider_id)
- Проверить работу на H2 и PostgreSQL
Ветка: feat/oauth2-user-service-26
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Описание: Абстрагировать данные пользователя OAuth2 от разных провайдеров в единый формат и интегрировать с Spring Security через CustomOAuth2UserService с логикой найти-или-создать пользователя + Добавить поля OAuth2-провайдера в существующую таблицу пользователей через миграцию.
Задачи:
Ветка: feat/oauth2-user-service-26