如何为特定用户获取com.adobe.granite.workflow.WorkflowSession

如何为特定用户获取com.adobe.granite.workflow.WorkflowSession,workflow,aem,Workflow,Aem,有人能帮我为特定用户获取com.adobe.granite.workflow.WorkflowSession吗。我可以为管理员获取会话,但无法为管理员以外的用户获取工作流会话 对于管理员,我们可以通过这种方式获得会话 com.adobe.granite.workflow.WorkflowSession wf = resourceResolver.adaptTo(com.adobe.granite.workflow.WorkflowSession.class); 你试过这种方法吗

有人能帮我为特定用户获取com.adobe.granite.workflow.WorkflowSession吗。我可以为管理员获取会话,但无法为管理员以外的用户获取工作流会话

对于管理员,我们可以通过这种方式获得会话

com.adobe.granite.workflow.WorkflowSession wf =
     resourceResolver.adaptTo(com.adobe.granite.workflow.WorkflowSession.class);

你试过这种方法吗

    ServiceReference serviceReference=componentContext.getBundledContext().getServiceReference(com.adobe.granite.workflow.WorkflowSession.class)
    com.adobe.granite.workflow.WorkflowSession wf =(com.adobe.granite.workflow.WorkflowSession)componentContext.getBundledContext().getService(serviceReference)
谢谢,
Balaji。

如果您在一个Sling HTTP请求的上下文中,当前
资源的
资源解析器
指向该请求的用户,因此像您这样进行调整应该返回该用户的会话

如果您没有请求上下文,Sling中使用的机制应该可以工作,在适应之前模拟
ResourceResolver
。查找
createAuthenticationInfo
()方法定义并在该类中使用。我自己还没有尝试过,但我想这会在
resourcesolver
指向所需用户时起作用

Session session = workflowSession.getSession();