我们刚刚从AEM6.1升级到6.3。我正在尝试执行工作流但收到以下错误 -
07.08.2017 15:20:21.233 *ERROR* [sling-threadpool-cc7c6ae7-7243-4db2-9490-b0810d422592-(apache-sling-job-thread-pool)-282-Granite Workflow Queue(com/adobe/granite/workflow/job/etc/workflow/models/content-request-for-deletion/jcr_content/model)] com.adobe.granite.repository.impl.SlingRepositoryImpl Bundle com.adobe.granite.workflow.core is NOT whitelisted to use SlingRepository.loginAdministrative
07.08.2017 15:20:21.233 *ERROR* [sling-threadpool-cc7c6ae7-7243-4db2-9490-b0810d422592-(apache-sling-job-thread-pool)-282-Granite Workflow Queue(com/adobe/granite/workflow/job/etc/workflow/models/content-request-for-deletion/jcr_content/model)] com.adobe.granite.workflow.core.job.JobHandler Error executing workflow step
java.lang.RuntimeException: Error logging in as service user
at com.adobe.granite.workflow.core.util.ServiceLoginUtil.getWorkflowPayloadSession(ServiceLoginUtil.java:82)
at com.adobe.granite.workflow.core.util.ServiceLoginUtil.getWorkflowPayloadWorkflowSession(ServiceLoginUtil.java:127)
at com.adobe.granite.workflow.core.job.JobHandler.process(JobHandler.java:203)
at org.apache.sling.event.impl.jobs.JobConsumerManager$JobConsumerWrapper.process(JobConsumerManager.java:500)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.startJob(JobQueueImpl.java:291)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.access$100(JobQueueImpl.java:58)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl$1.run(JobQueueImpl.java:227)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.jcr.LoginException: Bundle com.adobe.granite.workflow.core is NOT whitelisted
at org.apache.sling.jcr.base.AbstractSlingRepository2.loginAdministrative(AbstractSlingRepository2.java:378)
at com.adobe.granite.workflow.core.util.ServiceLoginUtil.getWorkflowPayloadSession(ServiceLoginUtil.java:76)
... 9 common frames omitted
我是否需要创建服务用户?我怎么能这样做?
答案 0 :(得分:1)
您会发现有用的链接https://issues.apache.org/jira/browse/SLING-5135 loginAdministrative是一个不推荐使用的方法,你仍然可以使用它,虽然在6.3中添加了额外的安全级别,所以为了能够使用它你需要创建一个OSGi配置 org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment更多信息here
答案 1 :(得分:0)
当我们尝试通过Aem 6.3或更高版本中的管理服务访问资源解析器时,会发生此问题...您可以通过以下方式删除此错误
Apache Sling服务用户映射器服务
此配置中有两个选项: 服务映射:可以在此处使用服务映射配置。 您可以这样配置: Bundle-Symbolic-Name:捆绑服务[可选] =系统用户名
默认用户:如果没有与捆绑相对应的服务映射,则捆绑将选择默认用户并将其用作服务身份验证用户。因此,如果您不想提供任何服务映射,则可以使用默认用户选项。但这不是特定于捆绑软件的。
当您要为特定项目设置单独的配置时,使用他的配置。 如果有多个配置与特定捆绑包相对应,则可以根据排名选择服务(编号最高的将具有最高的排名)。
新的loginService方法
现在引入了新方法来代替loginAdministrative方法: ResourceResolver getServiceResourceResolver(Map authenticationInfo)抛出LoginException; 会话loginService(String serviceInfo,String工作区)抛出LoginException,RepositoryException;
注意:每个使用ResourceResolverFactory或SlingRepository服务的捆绑包实际上都会获得一个绑定到使用捆绑包的实例。该捆绑包用于标识服务。