我在 Spring Boot 应用程序中使用 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)))
关于java - 如何在 KeyCloak 中分配复合角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67682331/