S2Directoryとは?
S2Directory は、ディレクトリサーバとの接続を容易にするためのコネクション管理機能と、ディレクトリサーバのエントリ・属性とオブジェクトを結びつける O/D Mapping (Object / Directory Mapping)、もしくは、別名 O/L Mapping (Object / LDAP Mapping) のフレームワーク機能を提供します。
S2Directory の実装は、S2Dao を多大に参考にしています。
S2Directory の使い方を学ぶには、まずは Tutorial を読んでください。
特徴
JNDI の知識が不要
ディレクトリサーバへの接続・切断、問い合わせ結果である NamingEnumeration の分解、オブジェクトへの変換ロジックを記述する必要がありません。
問い合わせフィルタの自動生成
命名規約に従って関数を作成することで、ディレクトリへの問い合わせフィルタを自動的に生成します。
インタフェース定義だけでデータの読み書きが可能
命名規則に従ったインタフェースを定義するだけで、実際の処理を実装せずにディレクトリ上のエントリを操作することができます。
多重属性に対応
複数の属性値を配列型もしくは java.util.List 型で表すことで、単一属性と同じようにエントリを操作することができます。
認証機能
ディレクトリサービスの特徴である認証機能をインタフェースを定義するだけで提供できます。
ユーザモードでの実行
ディレクトリサーバとの接続をディレクトリサービスのもつ認証機能を用いて、ユーザごとにコネクションを生成し、接続することができます。
ユーザパスワードの管理
ディレクトリサーバ上のユーザパスワードは、暗号化された状態に加えてバイナリ形式の属性で保存されています。 S2Directory を用いた場合、平文パスワードを値に設定するだけで自動的にパスワードを検証し、パスワードが更新されている場合は指定した暗号形式に従い暗号化処理を施し更新することができます。 対応している暗号形式は、一般的なディレクトリサーバで利用できる認証方式から Crypt を除いた、MD5、SMD5、SHA、SSHA、PLAIN です。
主な機能
実装済み
- SASL (Simple Authentication and Security Layer) 認証
- ユーザモード接続
- 新規エントリ作成機能
- 読み出し機能
- 更新機能
- 削除機能
- バイナリデータ対応
- パスワード対応 (PLAIN, MD5, SMD5, SHA, SSHA)
- 複数の属性値の読み書きに対応 (java.lang.String, java.util.List)
- SSL/TLS 対応 (独自認証局含む)
- コネクションプーリング (実験的サポート)