背景
我需要将定制应用程序的用户数据库迁移到 Keycloak。我创建了一个keycloak-add-user.json
成功导入用户的文件。迁移的用户密码在原始系统中进行了哈希处理,但是我实现了一个 Keycloak Password Hash SPI 服务类,它使用现有算法来验证迁移用户的哈希值和盐值。Hash SPI 类从 Keycloak SPI 实现PasswordHashProviderFactory
并PasswordHashProvider
基于“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
我的 jar 包含一个初始化文件META-INF/services/org.keycloak.models.PasswordHashProviderFactory
,其中一行包含 HashProvider 实现的完整类名。
my.folder.MyPasswordHashProvider
这是基于 Federation SPI doco,但 Keycloak Password Hash SPI 的文档似乎不存在。我错过了什么,或者我需要做些什么来注册和使用我的哈希提供者和 Keycloak?