S2Directoryとは?
S2Directoryは、ディレクトリサーバとの接続を容易にするためのコネクション管理機能と、ディレクトリサーバのエントリ・属性とオブジェクトを結びつけるO/D Mapping ( Object / Directory Mapping )、もしくは、O/L Mapping ( Object / LDAP Mapping ) のフレームワーク機能を提供します。もっと簡単に一言で言い表すと、S2DaoのDao対象がリレーショナルデータベースからディレクトリサーバになったものです。
上記のとおりS2Directoryは、その実装を行うに際してS2Daoを多大に参考にしています。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対応