Этот модуль также может использоваться как наложение поверх некоторой другой базы данных. Использование в качестве наложения позволяет инициировать внешние действия в ответ на операции с основной базой данных.
Для использования этого модуля в качестве наложения, данные директивы должны следовать за строкой "overlay sock" в существующем определении базы данных.
binddn: <DN, от имени которого выполнено подсоединение> peername: IP=<адрес>:<порт> ssf: <значение SSF> connid: <идентификатор соединения>
При использовании в качестве наложения определены следующие дополнительные директивы:
ADD msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> <запись в формате LDIF> <пустая строка>
BIND msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> method: <номер метода> credlen: <длина <учётных данных>> cred: <учётные данные> <пустая строка>
COMPARE msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> <атрибут>: <значение> <пустая строка>
DELETE msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> <пустая строка>
MODIFY msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> <повторение { <"add"/"delete"/"replace">: <атрибут> <повторение { <атрибут>: <значение> }> - }> <пустая строка>
MODRDN msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> dn: <DN> newrdn: <новое RDN> deleteoldrdn: <0 или 1> <если указана новая вышестоящая запись: "newSuperior: <DN>"> <пустая строка>
SEARCH msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> base: <базовое DN> scope: <0-2, смотрите ldap.h> deref: <0-3, смотрите ldap.h> sizelimit: <ограничение по размеру> timelimit: <ограничение по времени> filter: <фильтр> attrsonly: <0 или 1> attrs: <"all" или разделённый пробелами список атрибутов> <пустая строка>
UNBIND msgid: <идентификатор сообщения> <повторение { "suffix:" <DN суффикса базы данных> }> <пустая строка>
Все эти команды, - за исключением unbind, - должны выдавать:
RESULT code: <целое число> matched: <совпавшее DN> info: <текст>
При использовании в качестве наложения внешняя программа должна вернуть ответ CONTINUE, если обработка запроса должна продолжиться нормальным способом; либо вернуть обычный ответ RESULT, если внешняя программа хочет обойти обработку результатов механизмом манипуляции данных той базы данных, к которой применяется наложение.
Если наложение настроено на отправку ответных сообщений во внешнюю программу, такие сообщения будут представлены как расширенное сообщение RESULT или сообщение ENTRY, определённые ниже. Сообщение RESULT аналогично приведённому ранее, но включает также поле msgid и любые сконфигурированные расширения (смотрите директиву extensions):
RESULT msgid: <идентификатор сообщения> code: <целое число> matched: <совпавшее DN> info: <текст> <пустая строка>
Как правило, для сопоставления сообщения результата с запросом требуется как поле msgid, так и поле connid. Сообщение ENTRY имеет форму:
ENTRY msgid: <идентификатор сообщения> <запись в формате LDIF> <пустая строка>
Для операции add не требуется иметь доступ write (=w) к псевдо-атрибуту children родительской записи.
Для операции bind требуется доступ auth (=x) к псевдо-атрибуту entry той записи, идентификационная сущность которой оценивается; доступ auth (=x) к удостоверяющим данным не проверяется, а делегируется программе, обрабатывающей запросы.
Для операции compare требуется доступ compare (=c) к псевдо-атрибуту entry того объекта, в котором находится значение, подвергающееся сравнению; доступ compare (=c) к атрибуту, значение которого подвергается сравнению, не проверяется.
Для операции delete не требуется иметь доступ write (=w) к псевдо-атрибуту children родительской записи.
Для операции modify требуется доступ write (=w) к псевдо-атрибуту entry; доступ write (=w) к конкретным атрибутам, которые подвергаются модификации, не проверяется.
Для операции modrdn не требуется иметь доступ write (=w) к псевдо-атрибутам children как текущей, так и новой родительской записи, если они различны; доступ write (=w) к отличительным значениям атрибутов именования не проверяется.
Для операции search не требуется иметь доступ search (=s) к псевдо-атрибуту entry базовой записи поиска; доступ search (=s) к атрибутам и значениям, используемым в поисковых фильтрах, не проверяется.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |