Récuperation des valeurs avec LDAP

Fermé
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 1 mai 2012 à 10:12
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 2 mai 2012 à 13:13
Bonjour,


je veux faire une class java qui va résuperer les utilisateurs depuis LDAP

et afficher en consoles les SN et mail

j'arrive à insérer un utilisateurs dans LDAP mais comme je dis je veux accéder à LDAP en mode lecture et parcourir tous les utilisateurs qui sont sous arborescence

com
example


le code d'insertion d'un nouveaux utilisateurs est :

import java.util.Hashtable;
import java.util.Properties;
import java.util.jar.Attributes;
 
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
 
public class LdaTest{
 
public static void main(String[] args) {
 
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,"uid=admin,ou=system"); // specify the username
env.put(Context.SECURITY_CREDENTIALS,"secret");// specify the password
// TODO code application logic here
 
// entry's DN
String entryDN = "uid=newUser,dc=example,dc=com";
 
// entry's attributes
 
Attribute cn = new BasicAttribute("cn", "crestianao2");
Attribute sn = new BasicAttribute("sn", "ronaldino2");
Attribute mail = new BasicAttribute("mail", "crestiano2@yahoo.com");
Attribute phone = new BasicAttribute("telephoneNumber", "+1 222 333");
Attribute givenName = new BasicAttribute("givenName", "ronaldo");
Attribute userpassword = new BasicAttribute("userpassword", "crestiano");
Attribute oc = new BasicAttribute("objectClass");
oc.add("top");
oc.add("person");
oc.add("organizationalPerson");
oc.add("inetOrgPerson");
 
DirContext ctx = null;
 
try {
// get a handle to an Initial DirContext
ctx = new InitialDirContext(env);
 
// build the entry
BasicAttributes entry = new BasicAttributes();
 
 
entry.put(cn);
entry.put(givenName);
entry.put(sn);
entry.put(mail);
entry.put(phone);
entry.put(userpassword);
entry.put(oc);
 
 
 
entry.put(oc);
 
// Add the entry
 
ctx.createSubcontext(entryDN, entry);
// System.out.println( "AddUser: added entry " + entryDN + ".");
 
} catch (NamingException e) {
System.err.println("AddUser: error adding entry." + e);
}
}
}


merci d'avance

2 réponses

mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
1 mai 2012 à 16:13
personne n'a acune idée sur ce genre de problème

je trouve dans le net un code qui affiche sous forme html


        AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();
 
        Map attributes = principal.getAttributes();
 
        Iterator attributeNames = attributes.keySet().iterator();
 
        out.println("Attributs<table>");
 
        for (; attributeNames.hasNext();) {
        out.println("<tr><th>");
        String attributeName = (String) attributeNames.next();
              out.println(attributeName);
              out.println("</th><td>");
              Object attributeValue = attributes.get(attributeName);
              out.println(attributeValue);
              out.println("</td></tr>");
        }
 
        out.println("</table>");




donc on peut inspérer de ce code pour faire le parcours des utilisateurs dans LDAP

et les afficher en mode console
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
2 mai 2012 à 13:13
personne n'a aucune idée sur ce genre de problème

puisque l'ancien code n'a rien affiché comme valeurs de retours des attributs

juste récupérer les utilisateurs depuis LDAP et afficher les valeurs des attributs (SN et MAIL.....) en mode console

pour le code de la partie connexion est :

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,"uid=admin,ou=system"); // specify the username
env.put(Context.SECURITY_CREDENTIALS,"secret");// specify the password
DirContext contex= new InitialDirContext(env);


et comme je dis mes utilisateur dans LDAP se trouvent sous cette arborescence

------COM
------------EXAMPLE
0