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:


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:


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:


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 *