2014-11-05 136 views
1

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

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

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

回答

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

如果您处于Sling HTTP请求的上下文中,则当前ResourceResourceResolver指向请求的用户,因此,像您一样进行调整应该返回该用户的会话。

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

+0

是的,这应该工作 – balaji 2014-11-09 06:24:43

-1
Session session = workflowSession.getSession(); 
相关问题