martes, 26 de mayo de 2009

Conexión a Servidor LDAP desde JAVA


Hola en en trabajo me pidieron realizar una conexión a un servidor LDAP desde una aplicación java, esto me pareció algo difícil en un principio ya que no tenía idea de como realizar algo parecido, con algunas sugerencias de parte de mi jefe decidimos usar la librería de novell para java jLDAP, esta librería es muy completa y permite realizar todas las posibles transacciones dentro de un servidor LDAP, novell también tiene bien documentado esto hasta con ejemplos todo el API esta aquí, una ves que te familiarizas con el código vas a ver que todo es muy fácil, pero es esta serie de posts vamos a ejemplificar como se podría hacer un CRUD dentro de nuestro servidor.



Para realizar la conexión aremos lo siguiente:

[sourcecode language='java']

/*
* Clase de Conexion Servidor LDAP
*/

package conexionldap;
import com.novell.ldap.LDAPConnection;
import com.novell.ldap.LDAPException;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
* @author christian
*/

public class Conexion {

private int ldapPort;
private int ldapVersion;
private LDAPConnection lc;
private String login;
private String ldapHost = "172.16.30.162";

public Conexion() {
}

/**
* Este método permite realizar la conexión al servidor de LDAP
* Para el usuario manager
* @param strManager
* @param strPassword
*/

public LDAPConnection ConexionManager(String strManager, String strPassword) {
login = "cn=" + strManager + ",o=utpl,c=ec";
System.out.println("" + login);
ldapPort = LDAPConnection.DEFAULT_PORT;
System.out.println("puerto: " + ldapPort);
ldapVersion = LDAPConnection.LDAP_V3;
System.out.println("Vesion: " + ldapVersion);
System.out.println("HOST: " + ldapHost);
try {
lc = new LDAPConnection();
lc.connect(ldapHost, ldapPort);
System.out.println("====Conectado al Servidor LDAP====");
lc.bind(ldapVersion, login, strPassword.getBytes("UTF8"));
System.out.println("Autenticado en el servidor....");
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
} catch (LDAPException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}
return lc;
}

/**
* Este metodo permite realizar la conexion al servidor de LDAP
* Para el usuario manager
* @param strUser
* @param strPassword
*/

public LDAPConnection ConexionUser(String strUser, String strPassword) {
login = "uid=" + strUser + ",ou=People,o=utpl,c=ec";
System.out.println("" + login);
ldapPort = LDAPConnection.DEFAULT_PORT;
System.out.println("puerto: " + ldapPort);
ldapVersion = LDAPConnection.LDAP_V3;
System.out.println("Vesion: " + ldapVersion);
System.out.println("HOST: " + ldapHost);
try {
lc = new LDAPConnection();
lc.connect(ldapHost, ldapPort);
System.out.println("====Conectado al Servidor LDAP====");
lc.bind(ldapVersion, login, strPassword.getBytes("UTF8"));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
} catch (LDAPException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}
return lc;
}

public void CerrarConLDAP(LDAPConnection lc) {
try {
lc.disconnect();
System.out.println("Conexion Cerrada Correctamente...");
} catch (LDAPException ex) {
Logger.getLogger(Conexion.class.getName()).log(Level.SEVERE,null, ex);
}

}

}

[/sourcecode]


Continuar:


Busqueda de usuarios en el servidor LDAP


CRUD de usuarios en el servidor LDAP




Descargar Proyecto JAVA - Netbeans


No hay comentarios: