sonia5 | 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 :
- public String connexion() {
- try {
- Hashtable ldapEnv = new Hashtable(11);
- ldapEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
- ldapEnv.put(Context.PROVIDER_URL, "ldap://" + serverIP + ":389" );
- ldapEnv.put(Context.SECURITY_AUTHENTICATION, "simple" );
- ldapEnv.put(Context.SECURITY_PRINCIPAL, "cn=admin" + baseName);
- ldapEnv.put(Context.SECURITY_CREDENTIALS, "ldaproot" );
- System.out.println("Connexion avec succès" );
- ldapContext = new InitialDirContext(ldapEnv);
- }
- catch (Exception e) {
- System.out.println(" bind error: " + e);
- e.printStackTrace();
- System.exit(-1);
- }
- return "connexion";
- }
|
[\CODE] Et voici mon autre code qui me permet d ajouter un autre utilisateur a LDAP [CODE]
Code :
- public void createNew1(String username, String surname, String givenName) {
- try {
- String distinguishedName = "cn=" + username + baseName;
- BasicAttributes newAttributes = new BasicAttributes(true);
- BasicAttribute oc = new BasicAttribute("objectclass" );
- oc.add("top" );
- oc.add("person" );
- oc.add("organizationalperson" );
- oc.add("user" );
- newAttributes.put(oc);
- newAttributes.put(new BasicAttribute("sAMAccountName", username));
- newAttributes.put(new BasicAttribute("userPrincipalName", username + "@" + serverIP));
- newAttributes.put(new BasicAttribute("cn", username));
- newAttributes.put(new BasicAttribute("sn", surname));
- newAttributes.put(new BasicAttribute("givenName", givenName));
- newAttributes.put(new BasicAttribute("displayName", givenName + " " + surname));
- System.out.println("Name: " + surname + " Attributes: " + givenName);
- System.out.println("Avant traitement Name: " + distinguishedName + " Attributes: " + newAttributes);
- ldapContext.createSubcontext(distinguishedName, newAttributes);
- System.out.println("Apres traitement Name: " + distinguishedName + " Attributes: " + newAttributes);
- }
- catch (Exception e) {
- System.out.println("create error: " + e);
- e.printStackTrace();
- System.exit(-1);
- }
- }
|
[\CODE] Et pour appeler cette dernière fonction t.createNew1("ut1", "ut1", "MDP" ); [CODE]
Code :
- Connexion avec succès
- Name: ut1 Attributes: MDP
- 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}
- create error: javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - displayName: attribute type undefined]; remaining name 'cn=ut1,dc=direction,dc=com'
- javax.naming.directory.InvalidAttributeIdentifierException: [LDAP: error code 17 - displayName: attribute type undefined]; remaining name 'cn=ut1,dc=direction,dc=com'
- at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3054)
- at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2931)
- at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2737)
- at com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:770)
- at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(ComponentDirContext.java:319)
- at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:248)
- at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:236)
- at javax.naming.directory.InitialDirContext.createSubcontext(InitialDirContext.java:178)
- at Traitement.traitement.createNew1(traitement.java:97)
- 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
|