【问题标题】:How to assign Composite Roles in KeyCloak如何在 KeyCloak 中分配复合角色
【发布时间】:2021-05-25 05:41:19
【问题描述】:

我在我的 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;
}

【问题讨论】:

    标签: java spring-boot keycloak keycloak-services


    【解决方案1】:

    但它将所有角色分配为复合角色。我想分配一个特定的 复合角色

    那是因为你添加了完整的列表:

    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)))
    

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 2019-06-04
      • 2022-10-18
      • 1970-01-01
      • 2021-01-03
      • 2014-04-04
      • 2019-12-07
      • 2018-01-06
      • 1970-01-01
      相关资源
      最近更新 更多