Bonjour,
J'ai cherché des tuto sur le moyen de se connecter à un ad pour faire du ldap en utilisant l'api java jndi.
J'ai des erreurs de connexion, il y a beaucoup de trous obscurs, comme par exemple l'explication des parametres cn, dn and cie
Alors voici le code que j'ai pour l'instant:

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
57
58
59
60
public static void main(String[] args)
{
 
		Hashtable env = new Hashtable();
		// definit la classe à utiliser comme fournisseur de service d'annuaire 
		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
		// definit l'adresse de l'annuaire LDAP
		env.put(Context.PROVIDER_URL, "ldap://10.0.0.10:389/dc=domaine.fr");
		// fournit l'identification à l'annuaire
		//valeur "simple" permet d'avoir le bind dn="cn=Manager..."
		//valeur none : dans le bind dn=""
		env.put(Context.SECURITY_AUTHENTICATION, "none" );
		//env.put(Context.SECURITY_PRINCIPAL, "uid=login, dc=domaine.fr");
		//env.put(Context.SECURITY_CREDENTIALS, "motdepasse");
 
		try {
			// se connecte à l'annuaire 
			DirContext ctx = new InitialDirContext(env);
			System.out.println("plop");
			// definit les options de recherche 
			SearchControls constraints = new SearchControls();
			System.out.println("plop");
			// la recherche doit se faire dans les noeuds sous-jacents à l'objet de base 
			constraints.setSearchScope(SearchControls.OBJECT_SCOPE);
			System.out.println("plop");
			//System.out.println("constraint: "+ constraints.getSearchScope()); 
			// précise le DN de la base de la recherche et le filtre 
			NamingEnumeration results=ctx.search("dc=univ-jfc,dc=fr", "objectclass=*",constraints); 
			System.out.println("plop");
			// afficher les attributs de chaque entrées 
			while (results != null && results.hasMore())
			{
				SearchResult entry = (SearchResult) results.next(); 
				System.out.println("DN: "+ entry.getName());
				Attributes attrs = entry.getAttributes(); 
				if (attrs == null ) 
				{
					System.out.println("Pas d'attributs");
				}
				else
				{
					// afficher chaque attribut
					for (NamingEnumeration attEnum = attrs.getAll();attEnum.hasMoreElements(); ) 
					{
						Attribute attr = (Attribute) attEnum.next();
						String attrId = attr.getID();
						//affiche les valeurs d'un attribut 
						for (Enumeration vals = attr.getAll(); vals.hasMoreElements(); 
							System.out.println(attrId+": "+vals.nextElement()));
					}
				}
					System.out.println();
			}
		}
		catch (NamingException e)
		{
			System.err.println("La recherche a échouée");
			e.printStackTrace();
		}
	}