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

时间:2017-03-31 16:32:29

标签: session cq5 aem sling aem-6

在AEM工作流程中,当我尝试将workflowSession模拟为启动器时,会抛出异常:

  

javax.security.auth.login.FailedLoginException:不是模拟   允许的。

我一定需要发起人的会话来触发我的工作流程中的某些任务,之前我曾经使用过这个任务:

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

其中adminSession现已弃用,我们现在使用系统用户,因此我无法模拟系统用户对发起者用户的任何建议?

2 个答案:

答案 0 :(得分:1)

您需要具有模拟权限的用户帐户。您的服务帐户必须是其尝试模拟的用户的允许模仿者。

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

答案 1 :(得分:1)

我不知道您的使用案例,但如果工作流程现已分配给新用户,则您不应该冒充执行者。您始终可以将WorkflowSession调整为SessionSession session = workflowSession.adaptTo(Session.class),除非工作流程通过用户步骤并更改为新用户,否则它将为您启动发起人会话。否则,您可以如您所述创建系统用户会话并使用它。

相关问题