在geometrix站点中,如果我需要获取只有用户X有权访问的页面的结果
以下查询会提取所有记录,但我需要仅限制X用户
需要在网址中包含哪些参数
答案 0 :(得分:1)
ACL mechanism负责授权(决定用户是否有权访问资源)非常复杂。权限从祖先节点继承,有组(并且组可以是另一组的成员),等等。这就是无法编写将列出可用于特定用户的节点的查询的原因
但是,您可以创建代表任何用户工作的资源解析程序,并使用它来查询存储库 - 您将只获得资源解析程序“所有者”可用的资源。例如:
final String user = "my-user";
final String query = "SELECT * FROM [cq:Page] AS s WHERE ISDESCENDANTNODE([/content/geometrixx/en]) ORDER BY [jcr:created]";
Map<String, Object> authInfo = new HashMap<String, Object>();
authInfo.put(ResourceResolverFactory.USER_IMPERSONATION, user);
ResourceResolver resolver = resourceResolverFactory.getAdministrativeResourceResolver(authInfo);
Iterator<Resource> result = resolver.findResources(query, "JCR-SQL2");