Histórico da Página
O Fluig fluig Identity é um componente para gestão de identidades. Sendo que, para realizar a autenticação os usuários são reconhecidos por login (email) e senha.
Ao integrar o Fluig fluig Identity com a plataforma Fluigfluig, os webservices SOAP da plataforma Fluig fluig irão exigir que a autenticação seja realizada com o login (email) e senha do Identity.
Atenção |
---|
Integrações que usam a senha do usuário como MD5 deixarão de funcionar quando o Fluig fluig Identity estiver habilitado. |
Com isso, para projetos que hoje utilizam algum tipo de usuário integrador, é necessário que este usuário esteja previamente cadastrado e relacionado a empresa no Fluig fluig Identity.
O diagrama abaixo demonstra o processo de autenticação em webservices SOAP quando existir integração com Fluig fluig Identity.
Atenção |
---|
Integrações com o Identity que tiverem várias requisições em um curto período de tempo devem user o serviço de Token |
Como todas as requisições vão até o Fluig fluig Identity para validar o usuário e senha e, dependendo da configuração, este pode ter que perguntar ao Active Directory pela senha, uma técnica de desenvolvimento que terá que ser aplicada para maior velocidade de integrações é a de Token.
Usando o serviço de token, utilize o método getToken para ter acesso a um token, e nós próximos serviços de qualquer módulo, basta colocar no nome de usuário (username) o token gerado. A única limitação desse serviço é que o Token dura apenas 15 minutos, após esse período será necessário gerar um novo token.
Utilizando serviços com o fluig Identity habilitado
Alguns métodos de serviços necessitam do 'userId' para sua utilização, para estes casos você pode obter o userId pelo email conforme o exemplo abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function afterProcessFinish(processId){
// Obtém a instância do serviço 'ColleagueService'
var colleagueServiceProvider = ServiceManager.getServiceInstance("ColleagueService");
// Instancia o serviço
var colleagueServiceLocator = colleagueServiceProvider.instantiate("com.totvs.technology.ecm.foundation.ws.ECMColleagueServiceService");
var colleagueService = colleagueServiceLocator.getColleagueServicePort();
// Obtém os dados do usuário pelo email do Identity
var colleaguesList = colleagueService.getColleaguesMail("usuario","senha","1","[email protected]").getItem();
var userId = null;
if(colleaguesList != null && colleaguesList.size() > 0) {
//Obtém o coleague retornado
userId = colleaguesList.get(0).getColleagueId()
log.info("userId: " + userId);
}
// Obtém a instância do serviço 'WorkflowEngineService'
var workflowEngineServiceProvider = ServiceManager.getServiceInstance("WorkflowEngineService");
// Instancia o serviço
var workflowEngineServiceLocator = workflowEngineServiceProvider.instantiate("com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService");
var workflowEngineService = workflowEngineServiceLocator.getWorkflowEngineServicePort();
// Cria o ObjectFactory
var objectFactory = workflowEngineServiceProvider.instantiate("net.java.dev.jaxb.array.ObjectFactory");
// Matriz de string
var cardData = objectFactory.createStringArrayArray();
// Array de anexos
var processAttachmentDtoArray = workflowEngineServiceProvider.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDtoArray");
// Array com a id dos usuários
var colleaguesId = objectFactory.createStringArray();
colleaguesId.getItem().add("1");
// Array de apontamentos
var appointment = workflowEngineServiceProvider.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDtoArray");;
// Cria uma solicitação com os dados obtidos
workflowEngineService.startProcess("usuario", "senha", 1, "nomeDoProcesso", 5, colleaguesId, "Comentário: Movimentando automaticamente", userId, false, processAttachmentDtoArray, cardData, appointment, false);
} |