2014-11-05 6 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

Если вы находитесь в контексте запроса HTTP Sling, то ResourceResolver текущего Resource указывает на пользователя запроса, поэтому адаптация, как и вы, должна вернуть сеанс пользователя.

Если у вас нет контекста запроса, механизм, используемый в Sling's SlingServletResolver, должен работать, выдавая себя за ResourceResolver перед адаптацией. Найдите определение метода createAuthenticationInfo() и используйте его в этом классе. Я сам не пробовал, но, полагаю, это сработает, так как ResourceResolver затем указывает на нужного пользователя.

+0

Да, это должно работать – balaji

-1
Session session = workflowSession.getSession(); 
Смежные вопросы