Поиск LDAP в приложении Java
Я использую этот класс LDAP в моем приложении. У меня есть Apache DS на моем локальном хосте, и он работает правильно.
В моем приложении я успешно подключен к серверу LDAP:
conn.connect("localhost", 10389);
conn.bind(LDAPConnection.LDAP_V3, "uid=admin,ou=system","secret".getBytes("UTF8"));
Затем я пытаюсь найти некоторые данные в каталоге LDAP:
attrList = new String[]{"dn", "cn", "mail"};
sFilter = "(mail=admin@test.com)";
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, я вижу некоторые результаты. Пожалуйста, проверьте этот скриншот.
1 ответ
Решение
Я использую такой код:
Attributes matchAttrs = new BasicAttributes(true);
matchAttrs.put(new BasiAttribute("mail", "admin@test.com"));
NamingEnumeration<SearchResult> answer = ctx.search(context, matchAttrs);
куда ctx
имеет тип InitialDirContext
, а также context
это корень поиска (контекст).