如何在 KeyCloak 中分配复合角色
How to assign Composite Roles in KeyCloak
我在 Spring 启动应用程序中使用 keycloak-admin-client 13.0.0。我可以从 KeyCloak 获取所有角色。我想要一个角色作为复合角色并将角色分配给该角色。
我使用了以下代码来分配复合。但它将所有角色分配为复合角色。我想将特定角色分配为复合
public List<RoleRepresentation> addComposites(String roleName) {
// list of roles
List<RoleRepresentation> roleRepresentations = listRoles();
RoleResource roleResource = rolesResource.get(roleName);
roleResource.addComposites(roleRepresentations);
return roleRepresentations;
}
But its assigns all roles as composite. I want to assign a particular
role as composite
那是因为您添加了完整列表:
List<RoleRepresentation> roleRepresentations = listRoles();
...
roleResource.addComposites(roleRepresentations);
您需要从该列表中筛选出您想要添加为复合角色的角色,如下所示:
Optional<RoleRepresentation> compositive =
roleRepresentations.stream()
.filter(r -> r.getName().equals(nameOfRoleToBeAddedAsCompositive))
.findFirst();
if(compositive.isPresent())
roleResource.addComposites(List.of(compositive.get()));
或清洁工:
roleRepresentations.stream()
.filter(r -> r.getName().equals(nameOfRoleToBeAddedAsCompositive))
.findFirst()
.ifPresent(role -> roleResource.addComposites(List.of(role)))
我在 Spring 启动应用程序中使用 keycloak-admin-client 13.0.0。我可以从 KeyCloak 获取所有角色。我想要一个角色作为复合角色并将角色分配给该角色。
我使用了以下代码来分配复合。但它将所有角色分配为复合角色。我想将特定角色分配为复合
public List<RoleRepresentation> addComposites(String roleName) { // list of roles List<RoleRepresentation> roleRepresentations = listRoles(); RoleResource roleResource = rolesResource.get(roleName); roleResource.addComposites(roleRepresentations); return roleRepresentations; }
But its assigns all roles as composite. I want to assign a particular role as composite
那是因为您添加了完整列表:
List<RoleRepresentation> roleRepresentations = listRoles();
...
roleResource.addComposites(roleRepresentations);
您需要从该列表中筛选出您想要添加为复合角色的角色,如下所示:
Optional<RoleRepresentation> compositive =
roleRepresentations.stream()
.filter(r -> r.getName().equals(nameOfRoleToBeAddedAsCompositive))
.findFirst();
if(compositive.isPresent())
roleResource.addComposites(List.of(compositive.get()));
或清洁工:
roleRepresentations.stream()
.filter(r -> r.getName().equals(nameOfRoleToBeAddedAsCompositive))
.findFirst()
.ifPresent(role -> roleResource.addComposites(List.of(role)))