Как фильтровать пользователей Keycloak по диапазону дат настраиваемого атрибута для автоматического напоминания по электJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как фильтровать пользователей Keycloak по диапазону дат настраиваемого атрибута для автоматического напоминания по элект

Сообщение Anonymous »

Проблема: Мне нужно внедрить планировщик, который отправляет напоминание о проверке электронной почты пользователям Keycloak через 30 дней после их первоначальной регистрации (если они еще не подтвердили свою электронную почту).
Мои требования:
  • Определить пользователей, у которых email_verified имеет значение false.
  • Отфильтровать этих пользователей на основе настраиваемого атрибута email-sent-date
  • Повторно отправить письмо с подтверждением с помощью Keycloak Admin API.
Дилемма: Я заглянул в Keycloak Admin REST API и нашел параметр q для поиска пользовательских атрибутов. Однако похоже, что API поддерживает только точные совпадения (например, q=last-sent:2024-01-01) и не поддерживает диапазон дат или фильтры неравенства (например, последняя отправка < 30 дней назад).
Мои предлагаемые решения:
  • Вариант 1: прямой запрос к базе данных (SQL). Я могу выполнить запрос к таблицам USER_ENTITY и USER_ATTRIBUTE, чтобы получить именно те идентификаторы, которые мне нужны.

    Проблема: Считается ли прямой запрос к базе данных Keycloak плохой практикой для операций только для чтения?
[*]Вариант 2: API Fetch & Фильтр. Получите всех непроверенных пользователей с помощью GET /users?emailVerified=false и отфильтруйте даты в логике моего приложения.
  • Озабоченность: Это не будет масштабироваться, если список непроверенных пользователей вырастет до тысяч.

Вопрос: Что рекомендуется? подход для этого в производственной среде? Есть ли способ выполнять запросы диапазона через API администратора или стандартным способом решения этой проблемы является чтение пользовательской базы данных SPI/direct?

Подробнее здесь: https://stackoverflow.com/questions/798 ... omated-ema
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»