2013-12-09 2 views
0

Я пытаюсь загрузить очень простой код LDAP, подключившись к общедоступному LDAP-провайдеру. Однако, несмотря на то, что каталог работает отлично в Apache DS, мой код не находит никаких объектов.Поиск в буфере начальной загрузки LDAP

import javax.naming._ 
import javax.naming.directory._ 
import javax.naming.ldap._ 
import java.util._ 
val env = new Hashtable[String, Object]() 
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 

env.put(Context.SECURITY_AUTHENTICATION, "none") 
env.put(Context.PROVIDER_URL, "ldap://ldap.virginia.edu:389/o=University of Virginia,c=US") 
var ctx = new InitialDirContext(env) 

val searchControls = new SearchControls() 
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE) 

Теперь, независимо от того, как я пытаюсь выполнить поиск или поиск, например.

var results = ctx.search("o=University of Virginia,c=US", "(cn=*)", searchControls) 

или более конкретно

var results = ctx.search("ou=adagn, ou=Business Non-Degree-adagn, o=University of Virginia, c=US", "(cn=*)", searchControls) 

Я просто получить javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'ou=adagn, ou=Business Non-Degree-adagn, o=University of Virginia, c=US'.

Я даже не знаю, является ли база неправильной или выражение поиска неверно ...?

EDIT: Это работает:

ldapsearch -h ldap.virginia.edu -p 389 -s sub -b 'o=University of Virginia,c=US' -x -z 1 '(cn=*)' 

ответ

1

Он работает со следующими изменениями:

env.put(Context.PROVIDER_URL, "ldap://ldap.virginia.edu:389") 
Смежные вопросы