如何在AEM工作流中获取/创建/模拟InitiatorSession

如何在AEM工作流中获取/创建/模拟InitiatorSession,session,aem,sling,aem-6,Session,Aem,Sling,Aem 6,在AEM工作流中,当我尝试向启动器模拟workflowSession时,会引发异常: javax.security.auth.login.FailedLoginException:模拟不可用 允许 我需要发起人的会话来触发我的工作流中的某些任务,之前我使用以下方法获取此任务: initiatorSession= adminSession.impersonate(new SimpleCredentials(initiatorUser,"".toCharArray())); adminSessi

在AEM工作流中,当我尝试向启动器模拟workflowSession时,会引发异常:

javax.security.auth.login.FailedLoginException:模拟不可用 允许

我需要发起人的会话来触发我的工作流中的某些任务,之前我使用以下方法获取此任务:

initiatorSession= adminSession.impersonate(new SimpleCredentials(initiatorUser,"".toCharArray())); 

adminSession现在已弃用,我们现在使用系统用户,因此我无法将系统用户模拟为发起方用户,有什么建议吗?

您需要具有模拟权限的用户帐户。您的服务帐户必须是它试图模拟的用户所允许的模拟者


尝试使用适当的用户组控制权限。

您需要具有模拟权限的用户帐户。您的服务帐户必须是它试图模拟的用户所允许的模拟者


尝试使用适当的用户组控制权限。

我不知道您的使用情况,但如果工作流现在分配给新用户,则您不应模拟发起人。您始终可以将
工作流会话
调整为
会话
会话会话=WorkflowSession.adapto(Session.class)
,除非工作流执行了用户步骤并更改为新用户,否则将获得启动器会话。否则,您可以如您所述创建一个系统用户会话并使用该会话。

我不知道您的用例,但如果工作流现在分配给一个新用户,您不应该模拟发起人。您始终可以将
工作流会话
调整为
会话
会话会话=WorkflowSession.adapto(Session.class)
,除非工作流执行了用户步骤并更改为新用户,否则将获得启动器会话。否则,您可以如您所述创建系统用户会话并使用该会话