2016-08-01 20 views
0

ФоноваяКак зарегистрировать Keycloak Пароль Хэш-провайдер SPI

Мне нужно перенести базу данных пользователей для заказных приложений в Keycloak. Я создал файл keycloak-add-user.json, который успешно импортирует пользователей. Мигрированные пользовательские пароли хешируются в исходной системе, однако я реализовал класс обслуживания KeySlack Password Hash SPI, который использует существующий алгоритм для проверки значения хэша и соты переносимого пользователя. Класс Hash SPI реализует PasswordHashProviderFactory и PasswordHashProvider из SPI Keycloak и основан на `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 

Это было основано на DOCO Федерации SPI, но документация для Keycloak хэша пароля SPI, кажется, не существует. Что мне не хватает, или что мне нужно сделать, чтобы зарегистрировать и использовать мой Hash-провайдер с Keycloak?

ответ

0

Это оказалось ошибкой копирования/вставки - файл инициализации имел неправильное имя пакета 'model', а не 'hash' и, следовательно, не соответствовал PasswordHashProviderFactory.

В поставщика банку нужно файл инициализации будет называться:

META-INF/services/org.keycloak.credential.hash.PasswordHashProviderFactory 

и содержать одну строку с полным именем класса реализации фабрики - в данном случае:

my.folder.MyPasswordHashProvider 
1

В более новые версии keycloak (я проверил 2.5.4), файл должен быть META-INF/services/org.keycloak.credential.hash.PasswordHashProviderFactory

 Смежные вопросы

  • Нет связанных вопросов^_^