3
現在、私はKeycloak APIとJavaクライアントを試しています。現時点では、私はグループにロールをプログラムで割り当てることに苦労しています。残念ながら、現時点ではドキュメントはあまり精巧ではありません。Keycloak APIを使用してグループにプログラムでロールを割り当てる
ここに私のコード例:として指定する必要がどのような存在ではない場合
@Test
public void testPushGroupWithRealmRoles() throws IOException {
GroupRepresentation group = new GroupRepresentation();
group.setName("JUnit Test Group realm roles");
String editRoleName = "junit_edit";
String deleteRoleName = "junit_delete";
RoleRepresentation editRole = getRealmRole(editRoleName);
if (editRole == null) {
editRole = new RoleRepresentation(editRoleName, "is allowed to edit", false);
getKeycloak().realm(clientConfig.getRealm()).roles().create(editRole);
}
RoleRepresentation deleteRole = getRealmRole(deleteRoleName);
if (deleteRole == null) {
deleteRole = new RoleRepresentation(deleteRoleName, "is allowed to delete", false);
getKeycloak().realm(clientConfig.getRealm()).roles().create(deleteRole);
}
group.setRealmRoles(Arrays.asList(editRole.getName(), deleteRole.getName()));
GroupResource existingGroup = getGroupRepresentation(group.getName());
if(existingGroup != null){
existingGroup.update(group);
} else{
getKeycloak().realm(clientConfig.getRealm()).groups().add(group);
}
}
グループは、作成された彼らが存在しない場合には役割が作成されますが、割り当て
group.setRealmRoles(Arrays.asList(editRole.getName(), deleteRole.getName()));
文字列のリストの引数?役割の名前?役割の技術的なIDですか? (両方私のために働いていない)。
ご協力いただきましてありがとうございます。
更新 ravthiruのおかげで、私は自分の問題を解決することができました。作業コードは以下です:あなたはすでに、あなたが次のコードを使用してグループと役割を関連付けることができる役割を作成した場合は
@Test
public void testPushGroupWithRealmRoles() throws IOException {
/*
ensure the roles exist
*/
String editRoleName = "junit_edit";
String deleteRoleName = "junit_delete";
RoleRepresentation editRole = getRealmRole(editRoleName);
if (editRole == null) {
editRole = new RoleRepresentation(editRoleName, "is allowed to edit", false);
getKeycloak().realm(clientConfig.getRealm()).roles().create(editRole);
}
RoleRepresentation deleteRole = getRealmRole(deleteRoleName);
if (deleteRole == null) {
deleteRole = new RoleRepresentation(deleteRoleName, "is allowed to delete", false);
getKeycloak().realm(clientConfig.getRealm()).roles().create(deleteRole);
}
/*
ensure the group exists
*/
GroupRepresentation group = new GroupRepresentation();
group.setName("JUnit Test Group realm roles");
GroupResource existingGroup = getGroupResource(group.getName());
if (existingGroup != null) {
existingGroup.update(group);
} else {
getKeycloak().realm(clientConfig.getRealm()).groups().add(group);
}
/*
assign roles to group
*/
existingGroup.roles().realmLevel().add(Arrays.asList(editRole, deleteRole));
}
おかげ関連している、これは魔法のように動作します。私はRealm-とClient-rolesをあなたのアプローチでプログラム的に割り当てることができました。 – flexguse
誰かがnodejsでグループ化する役割を割り当てる方法を知っていますか? – Mjafko