首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kuali莱斯远程API: removePrincipalFromRole静默失败

Kuali莱斯远程API: removePrincipalFromRole静默失败
EN

Stack Overflow用户
提问于 2016-01-30 05:11:09
回答 1查看 91关注 0票数 2

我在一个Grails应用程序中工作,该应用程序使用remote赖斯2.3.6 (嵌入到Kuali Coeus 5.2.1中)作为IAM后端。这在很多方面都是成功的!但这一条不是:

代码语言:javascript
复制
org.kuali.rice.kim.api.role.RoleService kimRoleServiceClient

...

kimRoleServiceClient.assignPrincipalToRole(
            principalId,
            role.namespace,
            role.name,
            qualifiers)

kimRoleServiceClient.principalHasRole(
            principalId,
            [kimRoleServiceClient.getRoleIdByNamespaceCodeAndName(
                role.namespace,
                role.name)],
            qualifiers) // returns true, as expected

kimRoleServiceClient.removePrincipalFromRole(
            principalId,
            role.namespace,
            role.name,
            qualifiers)

kimRoleServiceClient.principalHasRole(
            principalId,
            [kimRoleServiceClient.getRoleIdByNamespaceCodeAndName(
                role.namespace,
                role.name)],
            qualifiers) // returns true (unexpected behavior)

不会返回任何错误,无论是调用的结果还是远程KC catalina.out中记录的异常。我可以在KC UI中验证角色是否仍然被分配,并且这不是两次调用之间的缓存问题--我可以等待相当长的一段时间,角色仍然被分配。

有什么线索吗?

编辑:

在rice.collab邮件列表中,有人建议该问题可能与KULRICE-9835: removePrincipalFromRole uses attribute id instead of attribute name in qualifier有关,该问题在赖斯2.5.1中被标记为已修复。这可能会带来另一个障碍,但目前,即使对于没有限定符的角色,此调用也会失败,即当上面调用中的qualifiers为空映射时。

EN

回答 1

Stack Overflow用户

发布于 2016-02-20 03:11:39

您的编辑注释您没有传递限定符,但是代码抛出异常,在这种情况下,查看代码?这会是你的问题吗?

./rice-middleware/kim/kim-impl/src/main/java/org/kuali/rice/kim/impl/role/RoleServiceImpl.java

代码语言:javascript
复制
@Override
    public void removePrincipalFromRole(String principalId, String namespaceCode, String roleName,
            Map<String, String> qualifier) throws RiceIllegalArgumentException {
        if (StringUtils.isBlank(principalId)) {
            throw new RiceIllegalArgumentException("principalId is null");
        }

        if (StringUtils.isBlank(namespaceCode)) {
            throw new RiceIllegalArgumentException("namespaceCode is null");
        }

        if (StringUtils.isBlank(roleName)) {
            throw new RiceIllegalArgumentException("roleName is null");
        }

        if (qualifier == null) {
            throw new RiceIllegalArgumentException("qualifier is null");
        }...
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35094123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档