LECTURE 1 JLDAP ( LDAP Class Libraries for Java )の導入

○ はじめに

Java で LDAP クライアントを作成するに際して、既に用意されている LDAP 接続用のクラスライブラリを使用することにします。LDAP の仕様を勉強してプロトコルそのものを実装していくのも興味深いですが、そこまでやる程に LDAP という技術が好きなわけではないので。。。というのは置いといて、単に LDAP クライアントを作成したい場合は既存のクラスライブラリを使用するのがはるかに便利です。

自分が調査したクラスライブラリは以下の 2 つです。

Netscape Directory SDK Netscape が 提供しているクラスライブラリです。ちなみに C 言語版も存在します。 mozilla.org の Directory SDK のページ からオープンソースとして寄贈されたソースコードをダウンロードすることができます。これらの ソースコードは NPL ( Netscape Public Licence ) の下で提供されています。 NPL はダウンロードページからたどれます。
なお、iplanet の 開発者用ダウンロードサイト からバイナリ版をダウンロードすることができますが、こちらのライセンスについては 良く分かりませんm(__)m
JLDAP ( LDAP Class Libraries for Java ) Novell がオープンソースとして OpenLDAP に寄贈した クラスライブラリです。 The OpenLDAP Public Licence の下で提供されています。

本文書では、JLDAP を使用して LDAP クライアントプログラムを作成します。

○ JLDAP のインストール

JLDAP ( LDAP Class Libraries for Java ) をインストールします。以下のものがインストールに必要です。

  • JLDAP
  • JDK 1.1.7 以上
  • SSL 接続を使用する場合は、JSSE ( Java Secure Socket Extension )
  • Apache Ant ( Java 用のビルドツール、 http://jakarta.apache.org/ant/ からダウンロードできます )

JLDAP は CVS を使ってダウンロードすることができます。具体的な方法は OpenLDAP のサイトに記述されていますが、簡単にまとめると以下のようになります。

  1. CVSROOT を :pserver:anonymous@cvs.OpenLDAP.org:/repo/OpenLDAP に設定する
  2. 以下のコマンドを実行する
    % cvs login
    Password: (パスワードは OpenLDAP)
    % cvs -z3 checkout -P -rTAG jldap
    % cvs logout
    
    
    ただし、↑の TAG の部分は 2002/3/28 現在 NOVELL_INITIAL_CONTRIB もしくは NOVELL_REFRESH_CONTRIB のみ指定できます。NOVELL_REFRESH_CONTRIB の方が新しいです。最新版のタグは HEAD ですが、HEAD ブランチを取得したい場合は -r オプション自体を指定しないで下さい。

最も簡単なビルド方法は、環境変数 ANT_HOME に Apache Ant のトップディレクトリを設定、環境変数 PATH に $ANT_HOME/bin ( Win32 環境では %ANT_HOME\bin )を追加、環境変数 JAVA_HOME に JDK のトップディレクトリを設定した上で、JLDAP のトップディレクトリに移って ant all でビルド実行です。

BUILD SUCCESSFUL と出たらビルド成功です。pkg ディレクトリ配下に API ドキュメントおよびクラスライブラリを固めた jar ファイルが作成されています。

doc と ietfdoc という 2 つのディレクトリが pkg 配下にありますが、doc の方は Novell 独自の API 仕様について記述したものであり、ietfdoc の方は IETF のドラフトで定義されている Java LDAP API の仕様について記述したものです。lib 配下の ldap.jar をクラスパスに設定すれば、いずれの機能も使用可能になりますが、本文書では互換性に留意すべく IETF のドラフトに基づいたプログラムを作成していきます。

更に詳しい情報については、JLDAP のトップディレクトリ内にある README を参照して下さい。