Поиск LDAP с использованием регулярного выражения - PullRequest
6 голосов
/ 09 июня 2011

Есть ли способ поиска в LDAP с помощью регулярного выражения для поля? Я использую ldapsearch или "Центр управления сервером Sun Java System Directory" для поиска.

Ответы [ 3 ]

7 голосов
/ 09 июня 2011

Ответ НЕТ, ты не можешь. Почему?

Поскольку стандарт LDAP описывает LDAP-SEARCH как вид функции с 4 параметрами:

  1. Узел, с которого начинается поиск, который является отличительным именем (DN)
  2. Атрибуты, которые вы хотите вернуть
  3. Глубина поиска (базовая, одноуровневая, поддерево)
  4. Фильтр.

Вы заинтересованы в фильтре.

Документация по синтаксису MSDN

Документация по LDAP Explorer

За пределами синтаксиса

Вы должны понимать, что операторы между атрибутами и значениями и подстановочными знаками внутри значений взаимодействуют с правилами соответствия , которые являются частью SCHEMA вашего Справочника. В бывшей Sun Directory (теперь oracle) каждый атрибут может быть настроен с тремя соответствующими правилами (равенство, порядок, подстрока).

4 голосов
/ 22 июня 2011

LDAP поддерживает поиск по подстроке, который не совсем совпадает с подстановочными знаками.Примерами фильтров подстрок являются '(uid=abc*)' и '(mail='john@*.com')' и т. Д.

Обычно целесообразно обратиться к администратору служб каталогов и запросить любые атрибуты, которые вы намереваетесь использовать в фильтре, для индексации при поиске по подстроке.,Профессиональные серверы LDAP поддерживают поиск по подстроке, и для индексации результатов поиска может потребоваться указать минимальное количество символов.Например, если сервер является сервером каталогов Sun (Sun ONE, DSEE или SJS DS), необходимо два символа, прежде чем символ '*' в фильтре, прежде чем индексы вступят в силу, например, '(mail=ab*)' может использовать индексы, тогда как '(mail=a*)' может не использовать индексы.

0 голосов
/ 09 июня 2011

Протокол LDAP, аналогичный SQL, поддерживает базовое сопоставление с подстановочными знаками, но не регулярные выражения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...