从 AEM6.1 升级到 AEM6.3 后,工作流程步骤失败
Workflow step is failing after upgrade from AEM6.1 to AEM6.3
我们刚刚从 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.access0(JobQueueImpl.java:58)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.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
我需要创建服务用户吗?我该怎么做?
你会发现这个有用 link https://issues.apache.org/jira/browse/SLING-5135
loginAdministrative 是一种已弃用的方法,您仍然可以使用它,尽管在 6.3 中添加了额外的安全级别,因此为了能够使用它,您需要创建一个 OSGi 配置
org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment 更多信息 here
当我们尝试通过 aem 6.3 或更高版本中的管理服务访问资源解析器时出现此问题...您可以通过以下方式消除此错误
Apache Sling 服务用户映射器服务
enter image description here
此配置有两个选项:
服务映射:可以在此处使用服务映射配置。
您可以这样配置它:
捆绑符号名称:子服务[可选] = 系统用户名
Default User:如果没有服务映射对应于一个bundle,那么bundle会选择默认用户并使用它作为它的服务认证user.So如果你不想提供任何服务映射,您可以使用默认选项 user.But 它不是特定于捆绑包的。
- Apache Sling 服务用户映射器修正案
enter image description here
当您想为特定项目进行单独配置时,将使用他的配置。
如果有多个配置对应一个特定的bundle,根据排名,可以选择服务。(数量最多的将具有最高的排名)。
新的登录服务方法
现在引入了新方法来替换登录管理方法:
ResourceResolver getServiceResourceResolver(Map authenticationInfo) 抛出 LoginException;
会话 loginService(String serviceInfo, String workspace) throws LoginException, RepositoryException;
注意:每个使用 ResourceResolverFactory 或 SlingRepository 服务的包实际上都会获得一个绑定到使用包的实例。该捆绑包用于识别服务。
我们刚刚从 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.access0(JobQueueImpl.java:58)
at org.apache.sling.event.impl.jobs.queues.JobQueueImpl.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
我需要创建服务用户吗?我该怎么做?
你会发现这个有用 link https://issues.apache.org/jira/browse/SLING-5135 loginAdministrative 是一种已弃用的方法,您仍然可以使用它,尽管在 6.3 中添加了额外的安全级别,因此为了能够使用它,您需要创建一个 OSGi 配置 org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment 更多信息 here
当我们尝试通过 aem 6.3 或更高版本中的管理服务访问资源解析器时出现此问题...您可以通过以下方式消除此错误
Apache Sling 服务用户映射器服务
enter image description here
此配置有两个选项: 服务映射:可以在此处使用服务映射配置。 您可以这样配置它: 捆绑符号名称:子服务[可选] = 系统用户名
Default User:如果没有服务映射对应于一个bundle,那么bundle会选择默认用户并使用它作为它的服务认证user.So如果你不想提供任何服务映射,您可以使用默认选项 user.But 它不是特定于捆绑包的。
- Apache Sling 服务用户映射器修正案
enter image description here
当您想为特定项目进行单独配置时,将使用他的配置。 如果有多个配置对应一个特定的bundle,根据排名,可以选择服务。(数量最多的将具有最高的排名)。
新的登录服务方法
现在引入了新方法来替换登录管理方法: ResourceResolver getServiceResourceResolver(Map authenticationInfo) 抛出 LoginException; 会话 loginService(String serviceInfo, String workspace) throws LoginException, RepositoryException;
注意:每个使用 ResourceResolverFactory 或 SlingRepository 服务的包实际上都会获得一个绑定到使用包的实例。该捆绑包用于识别服务。