Фон
Мне нужно перенести базу данных пользователей для специального приложения в Keycloak. Я создал keycloak-add-user.json
файл, который успешно импортирует пользователей. Перенесенные пароли пользователей хешируются в исходной системе, однако я реализовал служебный класс Keycloak Password Hash SPI, который использует существующий алгоритм для проверки хеш-значения и значения соли перенесенного пользователя. Класс Hash SPI реализует PasswordHashProviderFactory
и PasswordHashProvider
из Keycloak SPI и основан на `Pbkdf2PasswordHashProvider '.
public class MyPasswordHashProvider implements PasswordHashProviderFactory, PasswordHashProvider {
public static final String ID = "XXXX";
Проблема
Когда мигрировавший пользователь пытается аутентифицироваться с помощью keycloak, org.keycloak.hash.PasswordHashManager
регистрирует ошибку.
Could not find hash provider XXXX for password
Моя банка содержит файл инициализации META-INF/services/org.keycloak.models.PasswordHashProviderFactory
с единственной строкой, содержащей полное имя класса реализации HashProvider.
my.folder.MyPasswordHashProvider
Это было основано на документации Federation SPI, но документации для Keycloak Password Hash SPI, похоже, не существует. Что мне не хватает или что мне нужно сделать, чтобы зарегистрироваться и использовать моего поставщика хеширования с Keycloak?