Я реализую SPI, который активируется при создании пользователем события обновления или удаления и сохраняет пользовательские данные в форме userDetails, ролей, разрешений, утверждений в кеше Redis, как получить пользовательские утверждения для конкретного пользователя, на обновление пользователя или его создание с использованием SPI без явной передачи токена носителя, поскольку все должно быть извлечено из консоли администратора Keycloak для этого пользователя.
Я пробовал этот способ, но ничего не получил, Пользователь Сессия стала нулевой, и userSessionModel также стала нулевой.
public Map getClaims (UserModel user) {
Mapclaims = new HashMap ();
UserSessionModel userSessionModel = session.sessions().getUserSession(realm, user.getId());
запрос AuthorizationRequest = новый AuthorizationRequest();
Map originalClaims = request.getClaims();
log.info("originalClaims: " + originalClaims);
originalClaims.forEach((ключ, значения) -> {
log.info("key: " + ключ + ", значения: " + значения);
Строковое значение = значения.isEmpty() ? null :values.get(0);
claims.put(key, value);
});
log.info("claims: " +claims);
return претензии;
Подробнее здесь: https://stackoverflow.com/questions/784 ... e-spi-impl