LDAP - Listar o DN raiz

2 respostas
kaoe

Vamos supor que tenho um LDAP com o seguinte DN

DN: cn=root, ou=People, o=Rede

Eu quero conseguir localizar automaticamente o raiz o=Rede, tentei este código mais

env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
	  env.put(Context.PROVIDER_URL,"ldap://127.0.0.1:389");
	    
	  InitialDirContext ctx = new InitialDirContext(env);

	  Attributes attrs = ctx.getAttributes("");
	  NamingEnumeration n=attrs.getAll();

	  while(n.hasMore()) {
		  System.out.println( n.next());
	  }

A única coisa que retorna é:
objectClass: top, OpenLDAProotDSE

Alguém tem alguma idéia?

2 Respostas

Rafael_Nunes

Eu façoisso utilizando as credentials:

try {
		    DirContext ctx = null ;
		    Hashtable env = new Hashtable(2);
		 
		 
		    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
		    env.put(Context.PROVIDER_URL, "ldap://10.10.10.110:389");
		    env.put(Context.SECURITY_AUTHENTICATION,"simple");
		    env.put(Context.SECURITY_PRINCIPAL, "cn=admin,dc=empresa,dc=com,dc=br");
		    env.put(Context.SECURITY_CREDENTIALS, "666");

		 
		    ctx = new InitialDirContext(env);
		 
		    Attributes attrList = ctx.getAttributes("") ;
	           Attribute attr1 = attrList.get("namingcontexts");
	           NamingEnumeration ne = attr1.getAll();
	           while(ne.hasMore()) {
		          String baseDN =(String) ne.nextElement();
		          System.out.println("Base DN : " + baseDN);
	           }
	 
		    ctx.close();
kaoe

Tentei com credencial e mesmo assim não apareceu nada. Quando coloco

Attribute att = attrs.get("namingcontexts");
	  System.out.println(att);

Retorna null

O estranho é que usando programas como o ldapbrowser ou o ldapstudio da Jakarta eles conseguem detectar, vi no fonte do ldapbrowser que ele faz desta forma, e sem credencial, para pegar mais copiando o código dele e colando não aparece nada, muito estranho isto, tem cara daqueles detalhes bem básicos que não estou percebendo, mais continuarei na luta.

Criado 20 de junho de 2007
Ultima resposta 21 de jun. de 2007
Respostas 2
Participantes 2