Recuperar usuário logado no BPM Workspace


Nesse post eu vou mostrar como recuperar o usuário logado no BPM Workspace.

Para recuperar o usuário logado de uma aplicação ADF Comum basta utilizar o código abaixo:

1
2
HttpServletRequest request = (HttpServletRequest) (FacesContext.getCurrentInstance().getExternalContext().getRequest());
 String usuarioLogado = request.getUserPrincipal().getName();

Porém esse código não funciona para recuperar o usuário logado no BPM Workspace.

Para recuperar o usuário logado no BPM Workspace basta utilizar o trecho de código abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private String getUsuarioLogado(){
 
 String userId = null;
 
 try {
 
String contextStr = ADFWorklistBeanUtil.getWorklistContextId();
 String lookupClient = ADFWorklistBeanUtil.getLookupClient();
 IWorkflowServiceClient wfSvcClient = TaskFlowPropsUtil.getWorkflowServiceClient(lookupClient);
 ITaskQueryService queryService = wfSvcClient.getTaskQueryService();
 IWorkflowContext wfContext = queryService.getWorkflowContext(contextStr);
 userId = wfContext.getUser();
 
} catch (Exception e) {
 e.printStackTrace();
 }
 
 return userId;
 }

Os imports para essas classes:

1
2
3
4
5
6
7
import oracle.bpel.services.workflow.client.IWorkflowServiceClient;
import oracle.bpel.services.workflow.client.worklist.util.TaskFlowPropsUtil;
import oracle.bpel.services.workflow.worklist.adf.ADFWorklistBeanUtil;
import oracle.bpel.services.workflow.worklist.adf.InvokeActionBean;
import oracle.stellent.ridc.IdcClientException;
import oracle.bpel.services.workflow.query.ITaskQueryService;
import oracle.bpel.services.workflow.verification.IWorkflowContext;

Todos essas classes estão no Bpm-services.jar que se encontra em ${JDEVELOPER_HOME}/jdeveloper/soa/modules/oracle.soa.workflow_11.1.1

Com isso você já conseguirá recuperar o usuário logado no BPM Workspace.

Até o próximo post.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *