Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
12 octobre 2013

LDAP OpenLDAP Lightweight Directory Access Protocol           Modules OpenLDAP


slapo-retcode

slapo-retcode

Overlay retcode

   Utile pour des tests, les réponses sont générées en accord avec différentes stratégies. Dans le premier cas, pour toutes les opérations ciblées dans une sous-arborecence, la recherche est effectuées et vérifiée pour le code de retour, plus un message textuel optionnel. Les codes de réponse connus sont fournis dans retcodes.conf. Dans le second cas, les classes d'objet qui héritent de errAbsObject comme errObject ou errAuxObject, retournent un code dicté par ce contenu. Un Troisième cas recherche l'objet dans une base pour découvrir si leur classe hérite de errAbsObject. Dans ce cas, leur contenu est utilisé pour calculer la réponse correspondante. Désactivé en utilisant le contrôle manageDSAit.

OPTIONS

retcode-parent ‹DN› Définis le DN parent où les entrées générées dynamiquement résident.
retcode-item ‹RDN› ‹errCode› [op=‹oplist›] [text=‹message›] [ref=‹referral›] md
[unsolicited=‹OID›[ :‹data›]] [flags=[pre|post-]disconnect[,...]] Une entrée générée dynamiquement sous retcode-parent. errCode est le numéro du code de réponse. oplist est une liste d'opérations qui génère la génération du code. matched est le DN matché qui est retourné avec l'erreur. text est le message optionnel, ref est permis pour le code referral. sleeptime secondes avant de traiter l'opération. unsolicited peut être utilisé pour forcer un message de réponse unsolicited rfc4511. OID si non 0, génère une réponse étendue avec data ajouté. flags contient disconnect ou pre-disconnect (fore la déconnection sans notification) ou post-disconnect (déconnection après avoir envoyé la réponse)
retcode-indir Active l'exploitation de errAbsObject.
retcode-sleep [-]‹n› Secondes d'attente avant de manipuler les opérations. une valeur négative indique une valeur aléatoire entre 0 et la valeur indiquée.

Schéma

Le code d'erreur:
( 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 )

L'opération qui déclenche le code de réponse:
( 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 )

le message textuel:
( 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 )

Temps d'attente avant de retourner la réponse:
( 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 retourné au client:
( 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 retourné comme réponse étendue unsolicited responses:
( 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 )

Chaîne d'octet à retourner comme donnée de réponse étendue:
( 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 )

Mode de déconnexion:
( 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 )

Déclencheur de l'overlay:
( 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 )

Exemples

retcode.conf se trouve dans tests/data/
include ./retcode.conf
Attendre 10 secondes, puis retourner un succès (0x00)
retcode-item "cn=Success after 10 seconds" 0x00 sleeptime=10
Attendre 10 secondes, puis retouner timelimitExceeded (0x03)
retcode-item "cn=Timelimit after 10 seconds" 0x03 sleeptime=10