Falha na autenticação de usuário integrado no ORACLE

Visão Geral

No Latromi, existem os seguintes meios de autenticação de usuários:

  • Usuários criados a partir do Latromi
  • Usuários do Active Directory.
  • Usuários integrados de um banco de dados externo.

Essas configurações são definidas no menu Configurações → Configurações de Acesso:

Na aba Integração dessa janela, podemos configurar um comando SQL que retorne os dados dos usuários de um banco de dados externo.

Problema

Quando o provedor de banco de dados ORACLE é utilizado na origem dos dados de usuários, e definimos apelidos para o nome das colunas, colocando-os entre " (aspas), ocorre falha na autenticação dos usuários.

Causa

Este problema ocorre porque para encontrar um usuário no banco de dados externo, o Latromi gerar um código SQL que envolve o SQL original, da seguinte forma:

SELECT * FROM (
    -- Inicio do comando original
    SELECT 
        USERS.ID AS "codigo", 
        USERS.EMAIL AS "loginusuario", 
        USERS.SENHA as "senha", 
        1 as "ativo",
        CASE WHEN USERS.TIPO = 0 THEN 1
        ELSE 0
        END AS "administrador"
    FROM USERS
    -- Fim do comando original
) u WHERE LOWER(u.loginusuario) = 'nome_do_usuario'

E como o sistema não espera que a coluna referente ao login do usuário esteja entre " (aspas), ocorre um erro interno, de colunas não encontrada.

Solução

Para solucionar este problema, basta remover as " (aspas) do apelido das colunas.