Probleme de code java /LDAP

Probleme de code java /LDAP - Java - Programmation

Marsh Posté le 17-08-2009 à 18:43:54    

Bonsoir
Je veux réaliser une application en java pour se connecter au serveur LDAP installé chez moi en local et voici mon code

 

[CODE]

Code :
  1. public String connexion() {
  2.       try {
  3.         Hashtable ldapEnv = new Hashtable(11);
  4.         ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
  5.         ldapEnv.put(Context.PROVIDER_URL,  "ldap://" + serverIP + ":389" );
  6.         ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple" );
  7.         ldapEnv.put(Context.SECURITY_PRINCIPAL, "cn=admin" + baseName);
  8.         ldapEnv.put(Context.SECURITY_CREDENTIALS, "ldaproot" );
  9.         System.out.println("Connexion avec succès" );
  10.         ldapContext = new InitialDirContext(ldapEnv);
  11.         }
  12.         catch (Exception e) {
  13.           System.out.println(" bind error: " + e);
  14.           e.printStackTrace();
  15.           System.exit(-1);
  16.        }
  17.  return "connexion";
  18. }


[\CODE]

 

Et voici mon autre code qui me permet d ajouter un autre utilisateur a LDAP

 

[CODE]

Code :
  1. public void createNew1(String username, String surname, String givenName) {
  2.   try {
  3.     String distinguishedName = "cn=" + username + baseName;
  4.     BasicAttributes newAttributes = new BasicAttributes(true);
  5.     BasicAttribute oc = new BasicAttribute("objectclass" );
  6.     oc.add("top" );
  7.     oc.add("person" );
  8.     oc.add("organizationalperson" );
  9.     oc.add("user" );
  10.     newAttributes.put(oc);
  11.     newAttributes.put(new BasicAttribute("sAMAccountName", username));
  12.     newAttributes.put(new BasicAttribute("userPrincipalName", username + "@" + serverIP));
  13.     newAttributes.put(new BasicAttribute("cn", username));
  14.     newAttributes.put(new BasicAttribute("sn", surname));
  15.     newAttributes.put(new BasicAttribute("givenName", givenName));
  16.     newAttributes.put(new BasicAttribute("displayName", givenName + " " + surname));
  17.     System.out.println("Name: " + surname + " Attributes: " + givenName);
  18.     System.out.println("Avant traitement Name: " + distinguishedName + " Attributes: " + newAttributes);
  19.     ldapContext.createSubcontext(distinguishedName, newAttributes);
  20.     System.out.println("Apres traitement Name: " + distinguishedName + " Attributes: " + newAttributes);
  21.   }
  22.   catch (Exception e) {
  23.     System.out.println("create error: " + e);
  24.     e.printStackTrace();
  25.     System.exit(-1);
  26.   }
  27.  }


[\CODE]
 
Et pour appeler cette dernière fonction
t.createNew1("ut1", "ut1", "MDP" );

 

[CODE]

Code :
  1. Connexion avec succès
  2. Name: ut1 Attributes: MDP
  3. Avant traitement Name: cn=ut1,dc=direction,dc=com Attributes: {displayname=displayName: MDP ut1, givenname=givenName: MDP, objectclass=objectclass: top, person, organizationalperson, user, samaccountname=sAMAccountName: ut1, sn=sn: ut1, userprincipalname=userPrincipalName: ut1@localhost, cn=cn: ut1}
  4. create error: javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - displayName: attribute type undefined]; remaining name 'cn=ut1,dc=direction,dc=com'
  5. javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - displayName: attribute type undefined]; remaining name 'cn=ut1,dc=direction,dc=com'
  6. at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3054)
  7. at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2931)
  8. at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2737)
  9. at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:770)
  10. at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(ComponentDirContext.java:319)
  11. at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:248)
  12. at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:236)
  13. at javax.naming.directory.InitialDirContext.createSubcontext(InitialDirContext.java:178)
  14. at Traitement.traitement.createNew1(traitement.java:97)
  15. at Traitement.traitement.main(traitement.java:111)


[\CODE]

 


Est ce que je dois faire des configurations au niveau de mon serveur Tomcat , ou bien je dois faire des ajout au niveau de mon code ou bien les arguments utilsès pendant  l'appellation la fonction : createNew1("ut1", "ut1", "MDP" ) ?
Merci d avance


Message édité par sonia5 le 17-08-2009 à 18:53:57
Reply

Marsh Posté le 17-08-2009 à 18:43:54   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed