alen3
Messages postés49Date d'inscriptionmercredi 4 janvier 2012StatutMembreDernière intervention24 novembre 2012
-
13 mai 2012 à 10:40
alen3
Messages postés49Date d'inscriptionmercredi 4 janvier 2012StatutMembreDernière intervention24 novembre 2012
-
15 mai 2012 à 23:10
salut,
je suis entrain de faire un statistique pour le nombre utilisateurs inscrit ( ajouter dans LDAP)
je travail avec LDAP
j'arrive à ajouter un utilisateur dans LDAP avec ce code
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=alen,dc=example,dc=com";
// entry's attributes
Attribute cn = new BasicAttribute("cn", "fabio");
Attribute sn = new BasicAttribute("sn", "fabio1");
Attribute mail = new BasicAttribute("mail", "fabio@google.com");
Attribute phone = new BasicAttribute("telephoneNumber", "+1 222 333");
Attribute givenName = new BasicAttribute("givenName", "fabio2");
Attribute userpassword = new BasicAttribute("userpassword", "ollend");
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);
}
et j'arrive à ajouter un attribut dateD'inscrit à ce personne
cet attribut permet de m'aider à savoir les nombres de personnes ajouter dans une période bien déterminer ( dans une année spécifique)
donc le but est de faire un code java qui permet de retourner depuis LDAP les nombre d'utilisateurs inscrit dans une année bien déterminée
donc la requête de recherche est filtré selon un paramètre ( c'est l'année)
j'arrive à récupérer tous les utilisateurs mais sans filtrage
avec ce code
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 dirContext;
try {
dirContext = new InitialDirContext(env);
NamingEnumeration e = dirContext.listBindings("dc=example,dc=com");
while (e.hasMore()) {
Binding b = (Binding) e.next();
Attributes at=dirContext.getAttributes(b.getName()+",dc=example,dc=com");
System.out.println("email" +at.get("mail").get());
}
dirContext.close();
} catch (NamingException e) {
System.err.println("Erreur lors de l'acces au serveur LDAP" + e);
e.printStackTrace();
}
System.out.println("fin des traitements");
donc le but est de faire avec le même principe mais la recherche est selon l'attribut dateD'inscrit mais le retour est un nombre entier