IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[JNDI] comment insérer de nouveaux objets dans notre annuaire LDAP


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut [JNDI] comment insérer de nouveaux objets dans notre annuaire LDAP
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut
    Alors les pro jndi personne qui serait ?

    sinon une autre question à la suite dans mon code quand je met l'adresse du serveur ldap, quand je met "localhost" tout se passe bien mais quand je met la vrai adresse IP j'ai un message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    env.put(Context.PROVIDER_URL,"ldap://localhost:389/dc=platine,dc=org");
    que je remplace par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    env.put(Context.PROVIDER_URL,"ldap://tata.toto.net:389/dc=platine,dc=org");
    le message d'erreur :
    javax.naming.CommunicationException: lcs-a.gicm.net:389 [Root exception is java.net.ConnectException: Connection refused]
    at com.sun.jndi.ldap.Connection.<init>(Connection.java:204)
    at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:119)
    at com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1668)
    at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2599)
    at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:290)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:175)
    at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:193)
    at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:136)
    at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:66)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:195)
    at javax.naming.directory.InitialDirContext.<init>(InitialDirContext.java:80)
    at Testjava.main(Testjava.java:42)
    Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
    at java.net.Socket.connect(Socket.java:452)
    at java.net.Socket.connect(Socket.java:402)
    at java.net.Socket.<init>(Socket.java:309)
    at java.net.Socket.<init>(Socket.java:124)
    at com.sun.jndi.ldap.Connection.createSocket(Connection.java:346)
    at com.sun.jndi.ldap.Connection.<init>(Connection.java:181)
    ... 14 more
    le programme java est sur la meme machine que le serveur ldap.

    l'adresse que je lui passe en paramétre est la bonne car meme avec le logiciel LDAP browser j'arrive a me connecter au serveur LDAP.

    alors je me demande si le fait de lui donner sa vrai adresse IP et que je sois en local , cela ne lui plait pas

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Par défaut
    Moi je ne suis pas assez calé, mais il y en a qui le sot apparemment

    http://www.developpez.net/forums/sho...8&goto=newpost

    Jacques Desmazières

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut
    oui exact merci y a l'air d'avoir de bon connaisseurs

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Par défaut
    Quel type de serveur LDAP est ce ?

    - Active Directory 2000 ou 2003
    -OpenLDAP
    -Novell

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Janvier 2005
    Messages : 38
    Par défaut
    Le mieux qu'en tu utilise OpenLDAP c'est d'utilisé la libraire jldap de novel, elle marche trés bien avec OpenLDAP

    tu trouvera la librairie ici: http://developer.novell.com/wiki/index.php/Jldap

    et des exemple d'utilisation ici: http://www.openldap.org/jldap/overview.html

Discussions similaires

  1. Creation d'un objet dans un annuaire LDAP
    Par reuqnas dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 06/05/2013, 11h41
  2. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 17h44
  3. Réponses: 2
    Dernier message: 07/12/2005, 16h26
  4. [XHTML11] Comment insérer une page externe dans une page ?
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/03/2005, 19h43
  5. Comment insérer de l'unicode dans un Richedit ?
    Par DanaKil dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/03/2004, 00h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo