22/08/2008, 03:41
|
| | Fecha de Ingreso: diciembre-2006
Mensajes: 14
Antigüedad: 17 años, 10 meses Puntos: 0 | |
Respuesta: Como Me conecto a LDAP con java? Este ejemplo funciona correctamente, lo malo es que no imprime la contraseña como debe ser? alguien me puede ayudar? quisiera saber como puedo obtener la contraseña y de paso como modificarla
public RecordatorioBean getObtenerUsuario(String domain, String user, String pass,String inictx, String login, String security, String base){
Hashtable env = new Hashtable();
RecordatorioBean recordatorio = null;
if (pass.compareTo("") == 0 || user.compareTo("") == 0)
return null;
env.put(Context.INITIAL_CONTEXT_FACTORY, inictx);
env.put(Context.PROVIDER_URL, domain);
env.put(Context.SECURITY_AUTHENTICATION, security);
env.put(Context.SECURITY_PRINCIPAL, new String(user));
env.put(Context.SECURITY_CREDENTIALS, new String(pass));
try {
DirContext ctx = new InitialDirContext(env);
String filter = "(&(uid="+login+")(objectclass=Person))";
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_ SCOPE);
NamingEnumeration results = ctx.search(base,filter,constraints);
SearchResult sr=null;
Attributes att=null;
if (results.hasMore()){
sr=(SearchResult) results.next();
att = (Attributes) sr.getAttributes();
NamingEnumeration ne = null;
recordatorio = new RecordatorioBean();
recordatorio.setPregunta ((String)this.atributo("PIFPregunta", att, ne));
recordatorio.setRespuesta ((String)this.atributo("PIFRespuesta", att, ne));
recordatorio.setEmail ((String)this.atributo("mail", att, ne));
recordatorio.setContrasena(this.atributo("userPass word", att, ne).toString());
System.out.println("String givenname: " + this.atributo("givenname", att, ne));
System.out.println("String uid: " + this.atributo("uid", att, ne));
System.out.println("String ibm-primaryEmail: " + this.atributo("mail", att, ne));
System.out.println("String PIFPregunta: " + this.atributo("PIFPregunta", att, ne));
System.out.println("String PIFRespuesta: " + this.atributo("PIFRespuesta", att, ne));
System.out.println("String userPassword: " + this.atributo("userPassword", att, ne));
ctx.close();
}
} catch (NamingException e) {
e.printStackTrace();
return null;
}catch (Exception ex){
System.out.println("Error en la búsqueda: " + ex.getMessage());
}
return recordatorio;
}
public Object atributo(String campo, Attributes att, NamingEnumeration ne)throws NamingException {
if (att.get(campo) != null) {
ne = att.get(campo).getAll();
while (ne.hasMore()) {
return ne.next().;
}
}
return "";
} |