Autenticação via LDAP

1 resposta
L

Pessoal,

Estou tentando fazer uma autenticação LDAP via JNDI. Segue o código abaixo. Acontece que têm horas que funciona corretamente e horas que deixa passar qualquer usuário, alguém poderia dizer onde está o erro.

package br.gov.ba.sei;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

import br.com.itx.integration.AbstractConnector;
import br.com.itx.integration.DatabaseAliases;
import br.com.itx.integration.InterfaceHeaders;
import br.com.itx.util.WIMap;

public class AutenticaUsuario extends AbstractConnector {
	
	boolean autenticado = false;

	public boolean getConexao(String host, String user, String pass) {

        Hashtable env = new Hashtable(5);

        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, host);
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, user);
        env.put(Context.SECURITY_CREDENTIALS, pass);
        
        DirContext ctx = null;

        try {
            ctx = new InitialDirContext(env);
            autenticado = true;
        } catch (Exception e) {
        	autenticado = false;
            e.printStackTrace();
        }
        
        return autenticado;
    }
/* Método principal que eu chamo da minha aplicação onde:
 * host = ldap://netuno2.netuno.intranet
 * user = o usuário digita
 * senha = o usuário digita
 */
	public void execute(WIMap wiMap, DatabaseAliases db, InterfaceHeaders head){
		if (this.getConexao(wiMap.get("host"),
							wiMap.get("tmp.txtLogin"), 
							wiMap.get("tmp.txtSenha"))){
			wiMap.put("pvt.wilogin", wiMap.get("wi.session.ip"));
			wiMap.put("pvt.login.login", wiMap.get("tmp.txtLogin"));
		} else {
			wiMap.remove("pvt.wilogin");
			wiMap.remove("pvt.login.login");
		}
	}
}

T+ Luciano

1 Resposta

ffranceschi

Voce tá passando como usuário um DN?
Qual servidor de LDAP vc usa?

Um outro modo de voce implentar é logar com um usuário(administrador) e fazer a busca do usuário no LDAP

Criado 5 de outubro de 2006
Ultima resposta 6 de out. de 2006
Respostas 1
Participantes 2