有没有办法为AEM中的资产提供安全性和授权?
我们将资产放到页面上,登录后最终用户会查看所有资产。我们希望限制页面上的资产应仅显示给特定用户(即使他们可以登录)。如果用户具有资产的URL,并且在登录后他们能够查看该资产。
要求是将资产限制为特定用户,即使他们可以登录页面。
欣赏你的时间。
答案 0 :(得分:1)
AEM支持OOTB此功能。您需要构建具有对资产的正确访问权限的正确组。默认情况下,发布实例' anonymous'用户对/ content / dam有读权限。您需要执行以下操作 -
现在,当用户登录时,他们只能访问仅限于其组的资产。
有关AEM中用户管理的更多详细信息,请阅读this article。
答案 1 :(得分:0)
正如您所说,您希望作者能够控制哪些组可以查看资产。因此在组件的作者对话框中填充所有用户组以使其可供作者配置。然后在您的代码中检查该组是否具有针对资产路径的权限 -
UserManager userManager = resourceResolver.adaptTo(UserManager.class);
Authorizable auth = userManager.getAuthorizable(<<group configured by author>>);
JackrabbitAccessControlManager acm = (JackrabbitAccessControlManager) adminSession.getAccessControlManager();
Set<Principal> principals = new HashSet<Principal>();
principals.add(auth.getPrincipal());
Privilege[] privileges = acm.getPrivileges(<<current assets path>>, principals);
您可以检查权限数组的权限。如果组具有权限而不仅仅呈现资产。