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.45 SLAPO-RETCODE (5) 2017/06/01
Страница сгенерирована с использованием manServer 1.07.