Descrição

O evento beforeLogin é um evento global do Fluig e é executado após as validações de senha e de bloqueio do usuário e antes de concluir um login de usuário. Ele pode ser usado para monitoramentos e até mesmo bloqueando login de um usuário em algumas situações.


O uso indevido do evento beforeLogin pode ocasionar inconsistência no login da plataforma, fazendo com que o usuário não consiga mais logar. Pode ser bloqueado inclusive o administrador, impossibilitando até mesmo a atualização e correção do próprio beforeLogin, sendo necessário uma intervenção diretamente no banco de dados.

Sintaxe

function beforeLogin(login, origin, requestInfoVO) {}

Parâmetros


login

Uma string com o login do usuário que está tentando fazer o login


origin

Uma string contendo o valor do atributo "com.totvs.technology.security.protocol" da requisição. O valor padrão para tentativas de login via web é null.


requestInfoVO

Um objeto do tipo RequestInfoVO contendo os dados  da requisição de login.

Exemplos de uso

Consultando um serviço cadastrado no Fluig para verificar se há um bloqueio 

function beforeLogin(login) {
	// Busca um serviço customizado cadastrado no Fluig e invoca um método específico dele
	var provider = ServiceManager.getServiceInstance("CustomService"); 
    var serviceLocator = provider.instantiate("com.fluig.sample.service.CustomService_Service"); 
    var service = serviceLocator.getCustomServicePort();

	// Caso o usuário esteja bloqueado pelo serviço customizado lança uma exceção informando
	// que o usuário está desativado no serviço customizado e cancela o login no Fluig
    if (service.isBlockedUser(login)) {
		throw "O usuário " + login + " está desativado no serviço customizado";
    }
}

Obrigando que o IP de requisição seja de uma faixa específica

function beforeLogin(login, origin, requestInfoVO) {
   if (requestInfoVO) { // previne erros em versões onde esse parâmetro não existia
      if (!requestInfoVO.ip.startsWith("172.")) {
         throw "Você deve estar conectado na VPN para realizar o acesso ao Fluig";
      }
   }
}

Compatibilidade

O parâmetro requestInfoVO foi introduzido na versão 2.0.1