我正在寻找任何方法来使用用户存储提供程序在 keyclock 上获取新的自注册用户的名字或姓氏?
就我而言,我正在使用 Keycloak 12 和一个旧的 MySQL 数据库,我必须在其中存储所有用户。
在我的 SPI 中实现 UserRegistrationProvider.addUser(RealmModel realm, String username) 和 CredentialInputUpdater.updateCredential(RealmModel realm, UserModel user, CredentialInput input) 允许我捕获用户名和密码......但我无法获得任何其他基本信息,例如名字/姓氏?
这是我的两个 CredentialInputUpdater 和 UserRegistrationProvider 实现:
@Override
public UserModel addUser(final RealmModel realmModel, final String username) {
Integer id = userRepository.createUser(username, "password");
User user = null;
if (id != null) {
user = new User(id.toString(), username, "firstName", "userName", "password");
}
return user != null ? new UserAdapter(session, realmModel, model, user) : null;
}
@Override
public boolean updateCredential(RealmModel realm, UserModel user, CredentialInput input) {
if (!supportsCredentialType(input.getType()) || !(input instanceof UserCredentialModel)) {
return false;
}
UserCredentialModel cred = (UserCredentialModel) input;
return userRepository.updateCredentials(user.getUsername(), cred.getChallengeResponse());
}
关于如何获取这两个数据的任何想法?