Autor Tema: LDAP Pass Changer a.k.a. LPC  (Leído 2497 veces)

0 Usuarios y 1 Visitante están viendo este tema.

@danfdzconsultor

  • *
  • Mensajes: 143
  • Liked: 19
  • 43 72 65 61 64 6F 20 70 6F 72 20 44 61 6E 69 65 6C
LDAP Pass Changer a.k.a. LPC
« : julio 11, 2011, 09:15:54 pm »
Pues aqui les dejo una clase de java que cambia el atributo de password al DN(distinguished name)
 dado. En muchos lugares el DN es el username xD


Se aceptan sugerencias.

Código: [Seleccionar]

import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NameClassPair;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.ModificationItem;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.InitialDirContext;

public class LdapUniquePassChanger{

String Dn = "steel";
String nuevoPassword="12345678";
boolean forzarNel = true;
DirContext ctx = null;
DirContext ctx2 = null;
DirContext ctx3 = null;
NameClassPair parNombre = null;
ModificationItem mody = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userPassword", nuevoPassword));
ModificationItem[] mods = {mody};
String comparacion = null;

    void modificaPassword()
    {
        Hashtable<String, String> env = new Hashtable<String, String>(5, 0.75F);
        String INITCTX = new String("com.sun.jndi.ldap.LdapCtxFactory");
        String SERVICE = new String("ldap://192.168.1.70:1389/o=Eaea,c=MX");
        String ENTRY_DN = new String("cn=Directory Manager");
        String ENTRY_PW = "adminpass";
        env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX);
        env.put(Context.PROVIDER_URL, SERVICE);
        env.put(Context.SECURITY_PRINCIPAL, ENTRY_DN);
        env.put(Context.SECURITY_CREDENTIALS, ENTRY_PW);
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        try {
            ctx = new InitialDirContext(env);
            ctx2 = (DirContext)ctx.lookup("ou=Users");
            ctx3 = (DirContext) ctx2.lookup("ou=Clients");
            System.out.println(String.valueOf(((Attributes)ctx3.getAttributes("uid="+Dn))));
            ctx3.modifyAttributes("uid="+Dn,mods);
            System.out.println("Modificación del usuario " + Dn + " por el nuevo password:" + nuevoPassword + " exitosa!");
        }
        catch (Exception e) { e.printStackTrace(); }
        finally {
            try {
                if(ctx!=null) ctx.close();
            } catch (Exception ne) { ne.printStackTrace();}
        }
    }
   
    public static void main(String eaea[])
    {
    LdapUniquePassChanger l = new LdapUniquePassChanger();
l.modificaPassword();
}

}
The way to be safe is never to be secure.
- Benjamin Franklin