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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 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 pour 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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 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");
merci d'avance
Partager