Поиск 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 это корень поиска (контекст).

Другие вопросы по тегам