gpt4 book ai didi

java - 如何更改 Adob​​e AEM 中 Runnable 类的权限?

转载 作者:行者123 更新时间:2023-12-01 19:29:50 24 4
gpt4 key购买 nike

AI 在从我的 Runnable 类中访问资源时遇到问题。

我正在 AEM (v.6.5) 中实现 Runnable 组件。它需要访问资源,在本例中为“/libs/wcm/core/resources/linguals”。但是,匿名用户无法访问此资源,AEM 使用此类用户启动我的组件。

如何更改 Runnable 类中的用户,以便它以不同的权限运行?

提前感谢您的帮助。

org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.my-service-user.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
user.mapping="[xxx.yyy.my-app.core:my-service=[my-service-system-user]]"/>

获取资源:

resourceResolver = resolverFactory.getServiceResourceResolver(Collections.singletonMap(ResourceResolverFactory.SUBSERVICE, "my-service"));

我阅读了一些文档,但它在我的情况下不起作用。

我正处于我的 AEM“冒险”的开始阶段,所以也许我只是明白了一些事情:)

据我了解,我需要一个“系统用户”。我不想依赖“acs-aem-commons”。我正在尝试this blog article 。我手动创建用户,然后创建配置文件并从系统中删除用户。它没有被重新创建。

最佳答案

如果我理解正确的话,您正在尝试使用 Sling Scheduler运行计划任务。

就存储库访问而言,这与任何其他 OSGi 服务没有太大区别。匿名用户无法访问的任何内容都应使用具有有意义的最小权限集的专用服务用户来加载。这样,您可以添加对给定资源集的显式只读访问权限,并将其限制为特定的 OSGi 服务,而不是使存储库的部分内容公开可读。

为此,您可以创建服务用户映射,以便您的 bundle 可以使用服务用户帐户。这将允许您使用 ResourceResolverFactory#getServiceResourceResolver 实例化与以该用户名创建的 session 关联的资源解析器。

参见https://sling.apache.org/documentation/the-sling-engine/service-authentication.html了解更多信息。

关于java - 如何更改 Adob​​e AEM 中 Runnable 类的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60095292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com