我想向 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(使用前将#替换为@)