2013-11-22 2 views
0

Я использую этот LDAP class в своем приложении. У меня есть Apache DS на моем локальном хосте, и он работает правильно.LDAP Поиск в Java APP

В моем приложении я успешно подключен к серверу LDAP:

conn.connect("localhost", 10389); 
    conn.bind(LDAPConnection.LDAP_V3, "uid=admin,ou=system","secret".getBytes("UTF8")); 

Тогда Im пытаясь найти какие-то данные в каталоге LDAP:

attrList = new String[]{"dn", "cn", "mail"}; 
    sFilter = "([email protected])"; 

    LDAPSearchConstraints cons = new LDAPSearchConstraints(); 
    cons.setDereference(LDAPSearchConstraints.DEREF_ALWAYS); 
    LDAPSearchResults searchResults = conn.search("uid=admin,ou=system", LDAPConnection.SCOPE_SUB, sFilter, attrList, false,cons); 

И нет никаких результатов в SearchResults. Так вы можете мне помочь? Но когда я ищу пользователя с ТОЧНЫМИ ПАРАМЕТРАМИ в Apache DS Studio, я вижу некоторые результаты. Пожалуйста, проверьте это screenshot.

+0

На скриншоте фильтр отличается, как и список запрошенных атрибутов. Это по дизайну? –

+0

Его просто моя глупая ошибка. Снимок экрана теперь исправлен. –

+0

Объекты с атрибутом 'mail' подчинены' uid = admin, ou = system'? Если базовый объект установлен на это значение, сервер каталогов LDAP будет рассматривать объекты только на базовом объекте или ниже его в качестве кандидатов для возврата к клиенту LDAP в результатах поиска. –

ответ

0

Я использую такой код:

Attributes matchAttrs = new BasicAttributes(true); 
matchAttrs.put(new BasiAttribute("mail", "[email protected]")); 
NamingEnumeration<SearchResult> answer = ctx.search(context, matchAttrs); 

Где ctx имеет тип InitialDirContext и context является поиск корня (контекст).

+0

Спасибо, но я использую реализацию norvell для LDAP. Корень проблемы - неправильный каталог LDAP config –

Смежные вопросы