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

时间:2014-11-05 12:21:34

标签: workflow cq5 aem

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

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

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

3 个答案:

答案 0 :(得分:2)

如果您在Sling HTTP请求的上下文中,当前ResourceResolver的{​​{1}}指向请求的用户,那么适应性就应该返回该用户& #39;会议。

如果您没有请求上下文,则Sling SlingServletResolver中使用的机制应该有效,在调整之前模拟Resource。查找ResourceResolver()方法定义并在该类中使用。我自己没有尝试过,但我认为这会有效,因为createAuthenticationInfo会指向所需的用户。

答案 1 :(得分:1)

你有没有试过这种方式

    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)

谢谢, 巴拉吉。

答案 2 :(得分:-1)

Session session = workflowSession.getSession();