在AEM工作流程中,当我尝试将workflowSession模拟为启动器时,会抛出异常:
javax.security.auth.login.FailedLoginException:不是模拟 允许的。
我一定需要发起人的会话来触发我的工作流程中的某些任务,之前我曾经使用过这个任务:
initiatorSession= adminSession.impersonate(new SimpleCredentials(initiatorUser,"".toCharArray()));
其中adminSession现已弃用,我们现在使用系统用户,因此我无法模拟系统用户对发起者用户的任何建议?
答案 0 :(得分:1)
您需要具有模拟权限的用户帐户。您的服务帐户必须是其尝试模拟的用户的允许模仿者。
尝试使用适当的用户组控制权限。
答案 1 :(得分:1)
我不知道您的使用案例,但如果工作流程现已分配给新用户,则您不应该冒充执行者。您始终可以将WorkflowSession
调整为Session
:Session session = workflowSession.adaptTo(Session.class)
,除非工作流程通过用户步骤并更改为新用户,否则它将为您启动发起人会话。否则,您可以如您所述创建系统用户会话并使用它。