SLAPD-PERL

Section: File Formats (5)
Updated: 2004-01-22
Index
 

名前

slapd-perl - slapd の Perl バックエンド  

所在

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

説明

slapd(8) の Perl バックエンドは slapd(8) に perl(1) インタプリタを組み込むことにより動作します。 設定ファイル slapd.conf(5) の perl データベースセクションは何の Perl モジュールを利用するかを指定しなければなりません。 そのようにしておくと slapd はバックエンドの特定の実体のためにすべての要求を処理する新しい Perl オブジェクトを作成します。

以下のアクションのそれぞれに対してメソッドを作成する必要があります。

  * new        # 新しいオブジェクトの作成
  * search     # ldap 検索の実行
  * compare    # 比較を行う
  * modify     # エントリの更新
  * add        # バックエントへのエントリの追加
  * modrdn     # エントリの RDN の更新
  * delete     # ldap エントリの削除
  * config     # 設定ファイル上の認識されなかった行の処理
  * init       # バックエンドが初期化された後に呼出し

特に明示しない限り、メソッドの戻り値がクライアントに返される結果コード になります。アクションを実装していない場合には unwillingToPerform (53) エラーを返します。

new
このメソッドは設定ファイルの読込みが perlmod 行に達したときに呼び出されます。 その行に指定されたモジュールがここで perl インタプリタに渡されて、 新しいオブジェクトを作成するために new メソッドが呼ばれます。 通常の perl オブジェクトと同様に、このオブジェクトの複数のインスタンスが 作られる可能性があることに注意してください。 メソッド new は引数としてクラス名を受け取ります。
search
このメソッドはクライアントから検索要求が来た場合に呼び出されます。 引数は次のとおりです。
  * オブジェクト参照
  * ベース DN
  * スコープ
  * 別名の実参照ポリシ
  * サイズ制限
  * 時間制限
  * フィルタ文字列
  * 属性名だけを取り出すようにするかのフラグ(yes なら 1 を指定)
  * 返す属性のリスト(空も可)

戻り値:(resultcode, ldif-entry, ldif-entry, ...)

compare
このメソッドはクライアントから比較要求が来た場合に呼び出されます。 引数は次のとおりです。
  * オブジェクト参照
  * dn
  * 属性アサーション文字列

modify
このメソッドはクライアントから更新要求が来た場合に呼び出されます。 引数は次のとおりです。
  * オブジェクト参照
  * dn
  * 次の形式のリスト
    ({ "ADD" | "DELETE" | "REPLACE" },
     attributetype, value...)...

add
このメソッドはクライアントから追加要求が来た場合に呼び出されます。 引数は次のとおりです。
  * オブジェクト参照
  * エントリの文字列表現形式

modrdn
このメソッドはクライアントから相対識別名変更要求が来た場合に呼び出されます。 引数は次のとおりです。
  * オブジェクト参照
  * dn
  * 新しい rdn
  * 古い rdn に使われていた属性値を削除するかのフラグ(yes なら 1)

delete
このメソッドはクライアントから削除要求が来た場合に呼び出されます。 引数は次のとおりです。
  * オブジェクト参照
  * dn

config
このメソッドには設定ファイル slapd.conf(5) の中の処理されなかった行を引き渡されます。 引数は次のとおりです。
  * オブジェクト参照
  * 行の引数の配列

戻り値: これが適正なオプションでなければ 0 以外を返します。

init
このメソッドはバックエンドが初期化された後に呼ばれます。 引数は次のとおりです。
  * オブジェクト参照

戻り値: 初期化に失敗したならば 0 以外を返します。  

設定オプション

ここにあげる slapd.conf オプションは PERL バックエンドデータベースに指定できます。 すなわち、これらのオプションは "database perl" とある行の後で、次の "backend" あるいは "database" 行が現れる前になければなりません。 この他に指定できるデータベースオプションについては slapd.conf(5) マニュアルページを参照してください。
perlModulePath /path/to/libs
変数 @INC に指定のパスを追加します。
perlModule ModName
ModName.pm にある ModName という名前のモジュールを `use' します。
filterSearchResults
検索結果を直接クライアントに返すのではなく、 検索要求に指定された検索フィルタでフィルタリングします。
 

設定例

OpenLDAP ソースツリーの中の slapd/back-perl/ ディレクトリに Perl モジュールの例があります。  

警告

このバックエンドの perl モジュールに対するインタフェースは変わる可能性があります。 どのような提案も大歓迎します。  

関連ファイル

/usr/local/etc/openldap/slapd.conf
デフォルトの slapd 設定ファイル
 

関連項目

slapd.conf(5), slapd(8), perl(1).  

和訳

稲地 稔 <inachi@kkd.biglobe.ne.jp>


 

Index

名前
所在
説明
設定オプション
設定例
警告
関連ファイル
関連項目
和訳