SLAPO-RETCODE(5)

НАЗВАНИЕ

slapo-retcode - наложение генерации результирующих кодов для slapd

ОБЗОР

/usr/local/etc/openldap/slapd.conf

ОПИСАНИЕ

Наложение slapd(8) retcode полезно для тестирования поведения клиентов при возникновении сгенерированных сервером ошибочных или необычных ответов, например, кодов ошибок, отсылок, чрезмерного времени отклика и т.п.

Ошибочные ответы генерируются в соответствии с различными стратегиями.

Согласно первой стратегии, все операции, нацеленные на определённое конфигурируемое поддерево, приводят к поиску объекта, связанного с запрашиваемым DN, и проверке этого объекта на наличие данных кода возврата: кода ответа, а также опциональных полей (текстового сообщения, настраиваемой задержки, поля matched DN и, если код ответа был "referral", отсылки (или списка отсылок)).

В файле retcode.conf представлены широко известные коды ответов из документов, определяющих стандарты. Этот файл может быть включён после инициализации экземпляра данного наложения.

Во втором режиме при возвращении в качестве промежуточных ответов на поисковый запрос объектов, построенных на объектных классах, унаследованных от errAbsObject, таких как errObject или errAuxObject, они преобразуются в ответ, обусловленный содержимым этих объектов.

В третьем режиме в базе данных, к которой применяется наложение, ищутся объекты, построенные на объектных классах, унаследованных от errAbsObject; в случае нахождения таких объектов, их содержимое используется для вычисления соответствующего ответа.

Данное поведение отключается путём использования элемента управления manageDSAit (RFC 3296); в этом случае результирующий объект, независимо от того, присутствует ли он в каталоге, динамически генерируется наложением или содержится в запросе, обрабатывается как обычно.

Специфичные для наложения retcode директивы конфигурации должны иметь префикс retcode-, во избежание конфликтов с директивами базы данных, к которой применяется это наложение, или с другими наложениями, применяемыми к той же базе данных. Для конфигурации наложения могут быть использованы следующие директивы:

retcode-parent <DN>

Эта директива определяет родительское DN поддерева, где будут находиться динамически сгенерированные записи. Если она не задана, используется суффикс базы данных, к которой применяется наложение.

retcode-item <RDN> <errCode> [op=<oplist>] [text=<message>] [ref=<referral>] [sleeptime=<sec>] [matched=<DN>] [unsolicited=<OID>[:<data>]] [flags=[pre|post-]disconnect[,...]]

Динамически сгенерированная запись, расположенная в поддереве retcode-parent. В качестве errCode указывается номер кода ответа; он может задаваться в любом формате, который поддерживает strtol(3). Опциональное поле oplist представляет собой список операций, вызов которых приведёт к генерации кода ответа; при его отсутствии действие директивы распространяется на все операции. Параметр matched представляет собой "совпавшее" DN, которое будет возвращено вместе с ошибкой, а параметр text - опциональное диагностическое сообщение. Параметр ref разрешено использовать только для кода возврата referral. Задание параметра sleeptime приведёт к тому, что slapd(8) выполнит задержку перед обработкой операции на указанное количество секунд. Параметр unsolicited может быть использован для возврата определённых в RFC 4511 сообщений произвольных уведомлений; если указанный в этом параметре OID отличен от "0", генерируется расширенный ответ с добавлением опциональных данных data. Если в параметре flags содержится disconnect или pre-disconnect, slapd(8) выполнит внезапное разъединение без отправки уведомления; при post-disconnect разъединение произойдёт непосредственно после отправки положенного ответа.

retcode-indir

Включает использование хранимых в каталоге объектов с объектным классом errAbsObject. Это может привести к большому количеству излишней нагрузки на каталог.

retcode-sleep [-]<n>

Определяет время задержки в секундах перед фактической обработкой какой-либо операции. Если указано отрицательное число, в качестве времени задержки используется случайное количество секунд в промежутке от нуля до абсолютного значения аргумента данной директивы.

НАБОР СХЕМЫ ДАННЫХ

Наложение retcode использует описанный ниже набор схемы данных "return code". Этот набор схемы специально разработан для использования с данным наложением и для других целей не предназначен. Также имейте ввиду, что работа над этим набором схемы продолжается, и потому изменения могут вноситься без уведомления. Набор схемы автоматически загружается наложением.

Данный набор схемы включает несколько объектных классов и связанных с ними типов атрибутов, которые описаны ниже.

Код ошибки:

( 1.3.6.1.4.1.4203.666.11.4.1.1 NAME ( 'errCode' ) DESC 'LDAP error code' EQUALITY integerMatch ORDERING integerOrderingMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

Операции, которые запускают возврат кода ответа:

( 1.3.6.1.4.1.4203.666.11.4.1.2 NAME ( 'errOp' ) DESC 'Operations the errObject applies to' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

Текстовое сообщение:

( 1.3.6.1.4.1.4203.666.11.4.1.3 NAME ( 'errText' ) DESC 'LDAP error textual description' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

Время задержки, по прошествии которой ответ фактически возвращается клиенту:

( 1.3.6.1.4.1.4203.666.11.4.1.4 NAME ( 'errSleepTime' ) DESC 'Time to wait before returning the error' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

Возвращаемое клиенту "совпавшее" DN:

( 1.3.6.1.4.1.4203.666.11.4.1.5 NAME ( 'errMatchedDN' ) DESC 'Value to be returned as matched DN' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )

OID, который требуется вернуть в качестве OID расширенного ответа в определённых в RFC 4511 ответах произвольных уведомлений (при значении "0" генерируется стандартный ответ, в котором идентификатор сообщения messageID установлен в 0):

( 1.3.6.1.4.1.4203.666.11.4.1.6 NAME ( 'errUnsolicitedOID' ) DESC 'OID to be returned within unsolicited response' EQUALITY objectIdentifierMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 SINGLE-VALUE )

Строка октетов, которую требуется вернуть в качестве данных в определённом в RFC 4511 ответе произвольного уведомления:

( 1.3.6.1.4.1.4203.666.11.4.1.7 NAME ( 'errUnsolicitedData' ) DESC 'Data to be returned within unsolicited response' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE )

Если значение этого атрибута TRUE, slapd(8) производит внезапное отключение без уведомления; если FALSE, он отключается по мере необходимости после отправки ответа:

( 1.3.6.1.4.1.4203.666.11.4.1.8 NAME ( 'errDisconnect' ) DESC 'Disconnect without notice' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )

Абстрактный класс, наличие которого вызывает срабатывание наложения:

( 1.3.6.1.4.1.4203.666.11.4.3.0 NAME ( 'errAbsObject' ) SUP top ABSTRACT MUST ( errCode ) MAY ( cn $ description $ errOp $ errText $ errSleepTime $ errMatchedDN ) )

Автономный структурный объектный класс для объекта данных, специально созданного для возврата ответного сообщения:

( 1.3.6.1.4.1.4203.666.11.4.3.1 NAME ( 'errObject' ) SUP errAbsObject STRUCTURAL )

Вспомогательный объектный класс, предназначенный для изменения поведения существующих объектов:

( 1.3.6.1.4.1.4203.666.11.4.3.2 NAME ( 'errAuxObject' ) SUP errAbsObject AUXILIARY )

ПРИМЕР

overlay         retcode
retcode-parent  "ou=RetCodes,dc=example,dc=com"

# retcode.conf можно найти в директории tests/data/ дерева исходных кодов
include         ./retcode.conf

# Подождать 10 секунд, затем вернуть success (0x00)
retcode-item    "cn=Success after 10 seconds" 0x00 sleeptime=10
# Подождать 10 секунд, затем вернуть timelimitExceeded (0x03)
retcode-item    "cn=Timelimit after 10 seconds" 0x03 sleeptime=10

ФАЙЛЫ

/usr/local/etc/openldap/slapd.conf

конфигурационный файл slapd по умолчанию.

СМОТРИТЕ ТАКЖЕ

slapd.conf(5), slapd-config(5), slapd(8). Наложение slapo-retcode(5) поддерживает динамическую конфигурацию через back-config.

ПРИЗНАНИЕ ЗАСЛУГ

Этот модуль был написан в 2005 году Pierangelo Masarati для SysNet.

OpenLDAP 2.4.47 SLAPO-RETCODE(5) 2018/12/19
Эта страница

Содержание

НАЗВАНИЕОБЗОРОПИСАНИЕНАБОР СХЕМЫ ДАННЫХПРИМЕРФАЙЛЫСМОТРИТЕ ТАКЖЕПРИЗНАНИЕ ЗАСЛУГ
SLAPO-RETCODE(5)
OpenLDAP 2.4 Руководство

Содержание

Введение в службы каталогов OpenLDAPБыстрое развёртывание и начало работыОбщая картина - варианты конфигурацииСборка и установка OpenLDAPНастройка slapd

 

Конфигурационный файл slapdЗапуск slapdКонтроль доступаОграниченияИнструментыМеханизмы манипуляции даннымиНаложенияСпецификация схемы

 

БезопасностьSASLTLSРаспределённая служба каталоговРепликацияОбслуживаниеМониторингПроизводительностьУстранение неполадок
Перевод официального руководства OpenLDAP 2.4 Admin Guide
Полное содержание здесь
LDAP для учёных-ракетчиков

Содержание

О книгеКонцепции LDAPОбъекты LDAPУстановка LDAPПримерыНастройкаРепликация и отсылкиLDIF и DSMLПротоколLDAP API

 

HOWTOНеполадкиПроизводительностьИнструменты LDAPБезопасностьЗаметкиРесурсы LDAPRFC и X.500ГлоссарийОбъекты
Перевод "LDAP for Rocket Scientists"
Полное содержание здесь
Ресурсы

Книги

Руководство OpenLDAP 2.4LDAP для учёных-ракетчиков

Другие

СтатьиТермины LDAPman-страницы OpenLDAP 2.4Список RFCКлиенты LDAPФайлы наборов схемы
Полезные ресурсы
Форум

 

Разделы форумаНепрочитанные сообщенияПоследние сообщения
Форум проекта
Главная

Pro-LDAP.ru

О проектеНовости проектаУчастникиСтаньте участником!Сообщите об ошибке!Об авторских правахСоглашения проекта
Присоединяйсь!