1
このガイドhttp://www.keycloak.org/docs/3.2/server_development/topics/user-storage.htmlを使用してユーザーフェデレーションを構成しています。これは正常に動作し、ユーザーはログインできます。KeyCloakユーザーフェデレーションとダイナミックロール
ユーザーは、MySQLデータベースに格納されます。ユーザーは異なる役割を持ち、mysqlにも格納します。
UserModelにロールを追加する方法がわかりません。私はgetUserXXX方法
例えば
@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