ResourceResolverFactory getServiceResourceResolver 在 AEM 6.1 中抛出异常

2024-03-05

我想向 AEM 写入一些数据,下面的代码在 AEM 6.0 中工作正常,但在 AEM 6.1 中不行,总是抛出登录异常,如下所示:

"获取服务的 CRX 用户时出现登录异常:'writeService'.org.apache.sling.api.resource.LoginException:无法派生捆绑包 group.tti.commons-service [395] 和子服务 writeService 的用户名"

OSGI配置:

我班上的代码:

import javax.jcr.Session;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
....
@Reference
private ResourceResolverFactory factory;
private ResourceResolver resourceResolverWriter;
private static Session adminSession;
...
...
Map<String, Object> param = new HashMap<String, Object>();        
    param.put(ResourceResolverFactory.SUBSERVICE, "writeService");
try {
  resourceResolverWriter = factory.getServiceResourceResolver(param);            
  adminSession = resourceResolverWriter.adaptTo(Session.class);
...
} catch (LoginException e) {
...
}

我是否遗漏了 AEM 6.1 上的任何内容?


在 AEM 6.1 中,服务用户必须是系统用户,这实际上意味着他们在 JCR 中的节点的类型为rep:SystemUser。这些用户cannot用于正常登录,仅由后台进程使用。管理员用户是not系统用户,因此您不能在这样的服务用户映射中使用管理员用户。您必须创建一个新的系统用户并为其分配适当的权限。

如果您想了解有关此更改的更多背景信息,请查看https://issues.apache.org/jira/browse/SLING-3854 https://issues.apache.org/jira/browse/SLING-3854.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ResourceResolverFactory getServiceResourceResolver 在 AEM 6.1 中抛出异常 的相关文章