Java 如何获取jcr中的所有现有组?
我想获取CQ5 JCR中所有现有组的列表。我能够使用以下代码获取JCR中所有现有用户的列表Java 如何获取jcr中的所有现有组?,java,adobe,aem,jcr,Java,Adobe,Aem,Jcr,我想获取CQ5 JCR中所有现有组的列表。我能够使用以下代码获取JCR中所有现有用户的列表 UserManager userManager = jkrSession.getUserManager(); final List<String> users = new ArrayList<String>(); Iterator<Authorizable> iter = userManager.findAuthoriza
UserManager userManager = jkrSession.getUserManager();
final List<String> users = new ArrayList<String>();
Iterator<Authorizable> iter = userManager.findAuthorizables(
"jcr:primaryType", "rep:User");
while (iter.hasNext()) {
Authorizable auth = iter.next();
if (!auth.isGroup()) {
users.add(auth.getID());
}
}
UserManager UserManager=jkrSession.getUserManager();
最终列表用户=新的ArrayList();
迭代器iter=userManager.findAuthorizables(
“jcr:primaryType”、“rep:User”);
while(iter.hasNext()){
可授权的auth=iter.next();
如果(!auth.isGroup()){
add(auth.getID());
}
}
我还没有找到任何方法来获取所有现有用户的列表。尽管如此,我可以看到父节点/home/users和/home/groups,并且可以迭代子节点以获取用户和组
我正在寻找一种更简单的方法。您的问题标题与问题内容不同步 首先,以下代码实际上是不必要的,因为您正在搜索rep:User,因此迭代器中只有用户可用,因此每次if检查都会失败
Authorizable auth = iter.next();
if (!auth.isGroup()) {
users.add(auth.getID());
}
因此,while循环可以重写为
users.add(iter.next().getID());
第二,如果要获取的是所有现有组的列表,那么可以使用
Iterator<Authorizable> iter = userManager.findAuthorizables(
"jcr:primaryType", "rep:Group");
迭代器
Iterator<Authorizable> iter = userManager.findAuthorizables(
"profile/jcr:primaryType", "nt:unstructured", UserManager.SEARCH_TYPE_AUTHORIZABLE);