Bonjour,

Apres multiple recherche sur internet je n'ai pas reussi a trouver de bon exemples de code qui permettent d'ajouter des entrées et ses attributs dans un annuaire LDAP.

C'est pour cela que je viens à vous en esperant qu'une personne s'y connaisse en jndi et s'il pouvait mettre un exemple de comment insérer des données dans un annuaire sa serait sympa merci d'avance

Je vous explique mon projet en qq lignes :

je dois récuperer un fichier texte qui se trouve sur un serveur X, ce fichier est généré tout les soirs en batch, il ressemble à ca :

dn: CN=777,OU=Utilisateurs,XXX
changetype: Modify
ADRAFFECTATION1: 32 RUE MIRABEAU
ADRAFFECTATION2:
ADRAFFECTATION3: 29480 LE RELECQ KERHUON
ADRAFFECTATION4:
ADRAFFECTATION5: FRANCE
CODEAFFECTATION: 923067
...
FinCollaborateur

dn: CN=888,OU=Utilisateurs,XXX
changetype: Modify
ADRAFFECTATION1: ALLEE LOUIS LICHOU
ADRAFFECTATION2:
ADRAFFECTATION3: 29480 LE RELECQ KERHUON
ADRAFFECTATION4:
ADRAFFECTATION5: FRANCE
CODEAFFECTATION: 918542
...
Je dois grace à ce fichier alimenter mon annuaire LDAP ce trouvant sur un autre serveur, pour cela j'utilise le langage java et plus particulierement jndi qui me permet d'acceder donc à l'annuaire. j'arrive a m'y connecter mais je n'ai pas encore compris comment y insérer des données

code que j'ai compris du jndi :

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
import java.util.Map;
import javax.naming.*;
import javax.naming.directory.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Hashtable;
 
class Testjava {
        public static void main(String[] args) {
 
        // Set up environment for creating initial context
        Hashtable env = new Hashtable(11);
        env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
      env.put(Context.PROVIDER_URL,"ldap://localhost:389/dc=platine,dc=org");
 
        // Authenticate
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "cn=root, dc=platine, dc=org");
        env.put(Context.SECURITY_CREDENTIALS, "xxxxxx");
 
        try
        {
        DirContext ctx = new InitialDirContext(env);
        System.out.println("Connection au serveur LDAP done");
 
        // do something useful with ctx
 
        Attributes answer = ctx.getAttributes("cn=Claire Chazal, ou=personnel, ou=GICM");
        for (NamingEnumeration ae = answer.getAll(); ae.hasMore();)
        {
                Attribute attr = (Attribute)ae.next();
                System.out.println("attribute: " + attr.getID());
                for (NamingEnumeration e = attr.getAll(); e.hasMore();
                System.out.println("value: " + e.next()));
        }
        ctx.close();
        System.out.println("Deconnection done");
        }
        catch (NamingException e)
        {
                System.out.println("erreur ici: ");
                e.printStackTrace();
        }
    }
}
A savoir que se programme marche bien , il se connecte et me retourne les attributs et la valeur des attributs de la personne.

Mais je recherche maintenant à insérer moi meme de nouvelle personne