1
我正在使用本指南http://www.keycloak.org/docs/3.2/server_development/topics/user-storage.html來配置用戶聯合。這工作正常,我的用戶可以登錄。KeyCloak用戶聯盟和動態角色
我的用戶存儲在Mysql數據庫中。用戶有不同的角色 - 也存儲在MySQL中。
我不確定如何將角色添加到UserModel。
我實現getUserXXX方法
e.g
@Override
public UserModel getUserByEmail(String email, RealmModel realm) {
LOGGER.info("LOADING BY EMAIL");
try (Connection connection = ds.getConnection()) {
try (PreparedStatement statement = connection.prepareStatement("select * from user where email = ?")) {
statement.setString(1, email);
try (ResultSet rs = statement.executeQuery()) {
if (rs.next()) {
UserEntity user = new UserEntity();
user.setEmail(rs.getString("email"));
user.setId(rs.getString("email"));
user.setPassword(rs.getString("password"));
return new UserAdapter(session, realm, model, user);
}
}
}
} catch (SQLException ex) {
LOGGER.error(ex.getMessage(), ex);
}
return null;
}
我現在想將特定角色添加到每個登錄用戶。我該怎麼做?
我UserAdapter延伸AbstractUserAdapterFederatedStorage
RoleModel是一個接口。是否有一個現有的助手類,或者我必須實現所有這些方法。 – chege
您只能將現有角色分配給用戶。您可以使用它來獲取現有角色。 realm.getClientByClientId(clientId).getRole(roleName); – Boomer