加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Jackrabbit用户管理

发布时间:2020-12-14 19:14:46 所属栏目:Java 来源:网络整理
导读:我几乎找不到任何关于如何为多个用户设计和构建存储库的文档. 我是Jackrabbit的新手,我总是使用一个主用户凭证来构建一个只有一个主用户访问的存储库. 现在我需要一个由成千上万的用户共享的存储库,每个用户都可以使用他的节点,并且没有其他用户的权限. Simp

我几乎找不到任何关于如何为多个用户设计和构建存储库的文档.

我是Jackrabbit的新手,我总是使用一个主用户凭证来构建一个只有一个主用户访问的存储库.

现在我需要一个由成千上万的用户共享的存储库,每个用户都可以使用他的节点,并且没有其他用户的权限.

SimpleAccessManager非常简单:

public boolean isGranted(ItemId id,int permissions) throws RepositoryException {
    checkInitialized();
    if (system) {
        // system has always all permissions
        return true;
    } else if (anonymous) {
        // anonymous is always denied WRITE & REMOVE permissions
        if ((permissions & WRITE) == WRITE
                || (permissions & REMOVE) == REMOVE) {
            return false;
        }
    }

    return true;
}

看起来无法使用SimpleLoginModule和SimpleAccessManager创建这样的多用户存储库.因为它只区分ADMIN和匿名用户,它们可以读取所有内容但无法写入…

所以必须使用DefaultAccessManager,也许这样做:

Session session = repository.login(new SimpleCredentials("admin","admin".toCharArray())); 

UserManager um = ((JackrabbitSession) session).getUserManager(); 
User user = um.createUser("john","doe"); 

/*   And assign some ALC as follows... And then play with it like this,which really sucks without proper documentation,one has to reverse engineer everything,wtf */

AccessControlManager acm = session.getAccessControlManager();     
AccessControlPolicyIterator it = acm.getApplicablePolicies(testRootNode.getPath()); 
while ( it.hasNext() ) { 
    AccessControlPolicy acp = it.nextAccessControlPolicy(); 

    Privilege[] privileges = new Privilege[]{acm.privilegeFromName(Privilege.JCR_WRITE)}; 

    ((AccessControlList)acp).addAccessControlEntry(new PrincipalImpl(user.getUserID()),privileges); 

    acm.setPolicy(testRootNode.getPath(),acp); 
} 

可以通过OpenCMIS访问存储库,OpenCMIS从客户端提供用户凭据.

编辑:这就是我在寻找AccessControl

最佳答案
我不确定所有必要步骤是什么,但您可以查看基于Apache JackRabbit的Hippo CMS存储库.它是一个开源CMS和内容存储库,它基于域和方面实现了自己的用户管理.

您可以找到Hippo CMS here安全部分的来源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读