Sunteți pe pagina 1din 3

/*

* To change this license header, choose License Headers in Project Properties.


* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ldap;

import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.InitialDirContext;
import java.util.Hashtable;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.NamingEnumeration;
import javax.naming.directory.DirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
/**
*
* @author Administrador
*/
public class ldap1 {
private String usuario;
private String clave;
private String servidor;
private String dn;
private String tipoAuth;
private boolean autenticado;
Attributes atributos;
DirContext dc;

/**
* Constructor de la conexion con el Motor de LDAP
*
* @param server Servidor en donde se encuentra el LDAP
* @param dn Directoria del arbol del LDAP
* @param ta Tipo de Autenticacion
* @param usuario Usuario que desea realizar la conexion
* @param clave Clave del usuario
*
*/

public ldap1(String dn,String clave) {

this.dn = dn;
this.usuario=usuario;
this.clave=clave;
inicializarConexion();
}

public void inicializarConexion() {

System.out.println("Iniciando Autenticacion");
try{
// Configuracion del entorno para crear el contexto inicial
Hashtable<String, String> entorno = new Hashtable<String, String>();

entorno.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
entorno.put(Context.PROVIDER_URL, "ldap://facturacionjb.local:389");
entorno.put(Context.SECURITY_AUTHENTICATION,"simple");
entorno.put(Context.SECURITY_PRINCIPAL, dn);
entorno.put(Context.SECURITY_CREDENTIALS,clave);

Attributes atributos;
dc = new InitialDirContext(entorno);

// Create the search controls


SearchControls searchCtls = new SearchControls();

//Specify the attributes to return


String returnedAtts[]={"sn","givenName", "samAccountName","mail","ou"};

searchCtls.setReturningAttributes(returnedAtts);

//Specify the search scope


searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);

//specify the LDAP search filter


String searchFilter = "(&(objectClass=user))";

//Specify the Base for the search


String searchBase ="dc=facturacionjb,dc=local";
//initialize counter to total the results
int totalResults = 0;

// Search for objects using the filter


NamingEnumeration<SearchResult> answer = dc.search(searchBase, searchFilter,
searchCtls);

{
while(answer.hasMore()){
SearchResult sr = (SearchResult)answer.next();

totalResults++;

System.out.println(">>>" + sr.getName());
Attributes attrs = sr.getAttributes();
System.out.println(">>>>>>" + attrs.get("samAccountName"));

System.out.println("Total results: " + totalResults);


}
dc.close();

} catch (Exception e) {
System.out.println("no entro");
}
}

/*Get's y Set's*/
public boolean isAutenticado() {
return autenticado;
}
public void setAutenticado(boolean autenticado) {
this.autenticado = autenticado;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
}

S-ar putea să vă placă și