Keycloak 自定义用户存储提供程序(分配的角色集/有效角色为空)

时间:2021-04-22 10:06:53

标签: keycloak

我正在针对仅包含用户信息但不包含角色信息的 HTTP 服务为 Keycloak 编写自定义 UserStorageProvider。

我想完成此服务的所有用户都被分配到 keycloak 中已经存在的复合角色。如您所见,我正在手动解析复合角色的聚合角色,这并不是很热衷。

主要问题是,我在以下 AbstractUserAdapter 中分配的角色在 Keycloak 的管理控制台中可见在“分配的角色”下,但不在“有效角色”。因此,它们不会映射到我的不记名令牌中。

@Override
public Set<RoleModel> getClientRoleMappings(ClientModel app) {
    Set<RoleModel> result = new HashSet<>();
    for (RoleModel role : app.getRoles()) {
        if("my_keycloak_comp_role".equals(role.getName())) {
            result.add(role);
            if (role.isComposite()) {
                result.addAll(role.getComposites());
            }
        }
    }

    return result;
}

0 个答案:

没有答案