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();
}
} |
Partager