В традиционной настройке (без Keycloak) мы сохраняем сущность User уровня приложения с отношениями JPA (
Код: Выделить всё
@OneToManyПоскольку Keycloak обрабатывает аутентификацию и хранит пользовательские данные, каков готовый или передовой способ моделирования пользователей и их отношений?
Вариант A – сохранить локальную таблицу User (синхронизированную с Keycloak) для поддержания отношений JPA, или
Option B — Нет таблицы локальных пользователей: сохраните только идентификатор пользователя Keycloak (
Код: Выделить всё
subМодели, которые я видел:
A. Локальная синхронизированная таблица пользователей
- Синхронизация через SPI прослушивателя событий Keycloak при регистрации/обновлениях или
- ленивая синхронизация при каждом запросе (например, с помощью фильтра/перехватчика, такого как UserSynchronizerFilter).
Код: Выделить всё
UserSynchronizer
- Ссылайтесь на подпрограмму Keycloak непосредственно в объектах домена (например, Product.ownerSub).
Подробнее здесь: https://stackoverflow.com/questions/798 ... n-keycloak
Мобильная версия