モジュール java.naming
パッケージ javax.naming.ldap

クラスInitialLdapContext

すべての実装されたインタフェース:
Context, DirContext, LdapContext

public class InitialLdapContext extends InitialDirContext implements LdapContext
このクラスは、LDAPv3スタイルの拡張操作および拡張コントロールを実行するための開始コンテキストです。

同期の詳細と、初期コンテキストの作成方法のポリシーについては、javax.naming.InitialContextおよびjavax.naming.InitialDirContextを参照してください。

RequestControls

初期コンテキスト(InitialLdapContext)を作成するときに、リクエスト・コントロールのリストを指定できます。 リスト内のコントロールは、コンテキスト、またはコンテキストから派生したコンテキストによって実行された暗黙的なLDAPバインド操作のための要求コントロールとして使用されます。 これらのコントロールを接続要求コントロールといいます。 getConnectControls()を使用して、コンテキストの接続リクエスト制御を取得します。

初期コンテキスト・コンストラクタに指定された要求コントロールは、検索およびルックアップなどの後続のコンテキスト操作のコンテキスト要求コントロールとしては使用されません コンテキスト・リクエスト・コントロールは、setRequestControls()を使用して設定および更新されます。

したがって、コンテキストに関連した要求コントロールには、接続要求コントロールとコンテキスト要求コントロールの2種類のセットを持つことがあります。 このことは、コンテキスト操作と暗黙的なLDAP「バインド」操作の両方に適用できない可能性のあるクリティカルなコントロールを送る必要のあるアプリケーションには必要です。 一般ユーザーのプログラムは次のように処理されます。

 InitialLdapContext lctx = new InitialLdapContext(env, critConnCtls);
 lctx.setRequestControls(critModCtls);
 lctx.modifyAttributes(name, mods);
 Controls[] respCtls =  lctx.getResponseControls();
最初に初期コンテキスト(critConnCtls)を作成するためのクリティカル・コントロールを指定してから、コンテキスト操作のコンテキストのリクエスト・コントロール(critModCtls)を設定します。 なんらかの理由でlctxをサーバーに再接続する必要がある場合は、critConnCtlsを使用します。 リクエスト制御の詳細は、LdapContextインタフェースを参照してください。

サービス・プロバイダ実装者は、実装の詳細について、LdapContextクラス説明の"サービス・プロバイダ"セクションを読み取る必要があります。

導入されたバージョン:
1.3
関連項目:
  • コンストラクタの詳細

    • InitialLdapContext

      public InitialLdapContext() throws NamingException
      環境プロパティまたは接続要求コントロールを使用しないで、初期コンテキストを構築します。 new InitialLdapContext(null, null)と等価です。
      例外:
      NamingException - ネーミング例外が発生した場合
    • InitialLdapContext

      public InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls) throws NamingException
      環境プロパティおよび接続要求コントロールを使用して、初期コンテキストを構築します。 環境プロパティの詳細は、javax.naming.InitialContextを参照してください。

      このコンストラクタでは、パラメータの変更または参照の保存は行われませんが、複製またはコピーが保存されます。 呼出し元は、environmentがコンストラクタに渡された後、変更可能なキーおよび値を変更しないでください。

      connCtlsは、基礎となるコンテキスト・インスタンスの接続リクエスト制御として使用されます。 詳細については、クラスの説明を参照してください。

      パラメータ:
      environment - 初期のDirContextを作成するために使用される環境。 nullは空の環境を示す。
      connCtls - 初期コンテキストの接続要求コントロール。 nullの場合、接続要求コントロールは使用されない。
      例外:
      NamingException - ネーミング例外が発生した場合
      関連項目:
  • メソッドの詳細

    • extendedOperation

      public ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException
      インタフェースからコピーされた説明: LdapContext
      拡張操作を実行します。 このメソッドを使用して、LDAPv3拡張操作をサポートします。
      定義:
      extendedOperation、インタフェースLdapContext
      パラメータ:
      request - 実行されるnull以外の要求。
      戻り値:
      操作のnullの可能性がある応答。nullは操作によって応答が生成されなかったを示す。
      例外:
      NamingException - 拡張操作の実行中にエラーが発生した場合。
    • newInstance

      public LdapContext newInstance(Control[] reqCtls) throws NamingException
      インタフェースからコピーされた説明: LdapContext
      このコンテキストの新しいインスタンスを要求コントロールを使って生成します。 このメソッドは、マルチ・スレッドのアクセスのためにこのコンテキスト・インスタンスを新たに作成する便利な手法です。 たとえば、複数のスレッドで個別のコンテキスト要求コントロールを使用する場合は、スレッドごとにこのメソッドを使用して、コンテキストの独自のコピーの取得、およびコンテキスト要求コントロールの設定と取得を行うことができます。このとき、他のスレッドと同期化する必要はありません。

      新規コンテキストには、このコンテキストと同じ環境プロパティ、接続要求コントロールがあります。 詳細については、クラスの説明を参照してください。 このコンテキストと新規コンテキストの間で、同じネットワーク接続またはその他のリソースを共有することもできます。ただし、各コンテキストの間で競合が発生する場合は、共有できません。

      定義:
      newInstance、インタフェースLdapContext
      パラメータ:
      reqCtls - 新しいコンテキストに使用するnullの可能性がある要求コントロール。 nullの場合は、要求コントロールを使用しないで初期化される。
      戻り値:
      null以外のLdapContextインスタンス。
      例外:
      NamingException - 新しいインスタンスの作成中にエラーが発生した場合。
      関連項目:
    • reconnect

      public void reconnect(Control[] connCtls) throws NamingException
      インタフェースからコピーされた説明: LdapContext
      指定されたコントロールとこのコンテキスト環境を使ってLDAPサーバーに再接続します。

      このメソッドは、LDAPのバインド操作を明示的に初期化する方法です。 このメソッドを使って、LDAPバインド操作に要求コントロールを設定したり、またはその操作によって返される応答コントロールを取得するために明示的にサーバーに接続できます。

      このメソッドは、このコンテキストのconnCtlsを新しい接続リクエスト制御に設定します。 このコンテキストのコンテキスト要求コントロールは影響を受けません。 このメソッドの起動後、connCtlsを使用して後続の暗黙的な再接続が実行されます。connCtlsは、このコンテキストから導出された新しいコンテキスト・インスタンスの接続リクエスト制御としても使用されます。 これらの接続リクエスト制御は、setRequestControls()の影響を受けません。

      実装の詳細については、実装側であるサービス・プロバイダは、クラスの「サービス・プロバイダ」セクションをよく読んでください。

      定義:
      reconnect、インタフェースLdapContext
      パラメータ:
      connCtls - 使用するnullの可能性があるコントロール。 nullの場合、コントロールが使用されない。
      例外:
      NamingException - 再接続中にエラーが発生した場合。
      関連項目:
    • getConnectControls

      public Control[] getConnectControls() throws NamingException
      インタフェースからコピーされた説明: LdapContext
      このコンテキストに有効な接続要求コントロールを取得します。 コントロールは、JNDI実装が所有していて、不変です。 配列、コントロールのどちらも、呼出し側は変更できません。
      定義:
      getConnectControls、インタフェースLdapContext
      戻り値:
      コントロールのnullの可能性がある配列。nullは、このコンテキストに対して接続コントロールが設定されていないことを示す。
      例外:
      NamingException - 要求コントロールの取得中にエラーが発生した場合。
    • setRequestControls

      public void setRequestControls(Control[] requestControls) throws NamingException
      インタフェースからコピーされた説明: LdapContext
      このコンテキストで引き続き呼び出されるメソッドに要求コントロールを設定します。 この要求コントロールは、JNDI実装が所有していて、不変です。 配列、コントロールのどちらも、呼出し側は変更できません。

      これにより、以前のリクエスト制御がすべて削除され、このコンテキストで起動された後続のメソッドで使用するためのrequestControlsが追加されます。 このメソッドは、このコンテキストの接続要求コントロールには影響を与えません。

      requestControlsは、setRequestControls()の次の呼出しまで有効になります。 nullまたは空の配列を指定してsetRequestControls()を明示的に起動し、コンテキスト・メソッドに影響を与えないようにコントロールをクリアする必要があります。 このコンテキストで有効なリクエスト・コントロールを確認するには、getRequestControls()を使用します。

      定義:
      setRequestControls、インタフェースLdapContext
      パラメータ:
      requestControls - 使用するnullの可能性があるコントロール。 nullの場合、コントロールが使用されない。
      例外:
      NamingException - 要求コントロールの設定中にエラーが発生した場合。
      関連項目:
    • getRequestControls

      public Control[] getRequestControls() throws NamingException
      インタフェースからコピーされた説明: LdapContext
      このコンテキストに有効な要求コントロールを取得します。 この要求コントロールは、JNDI実装が所有していて、不変です。 配列、コントロールのどちらも、呼出し側は変更できません。
      定義:
      getRequestControls、インタフェースLdapContext
      戻り値:
      コントロールのnullの可能性がある配列。nullは、このコンテキストに対して要求コントロールが設定されていないことを示す。
      例外:
      NamingException - 要求コントロールの取得中にエラーが発生した場合。
      関連項目:
    • getResponseControls

      public Control[] getResponseControls() throws NamingException
      インタフェースからコピーされた説明: LdapContext
      このコンテキストで最後に呼び出されたメソッドの結果として生成された応答コントロールを取得します。 この応答コントロールは、JNDI実装が所有していて、不変です。 配列、コントロールのどちらも、呼出し側は変更できません。

      これらの応答コントロールには、正常に終了した操作または失敗した操作によって生成されたものがあります。

      レスポンス制御を返すコンテキスト・メソッドが呼び出されると、前のメソッド呼出しからのレスポンス制御がクリアされます。getResponseControls()は、LDAPサーバーから受信された順序でコンテキスト・メソッドによって使用されるLDAP操作によって生成されたすべてのレスポンス制御を返します。 getResponseControls()を起動しても、レスポンス制御はクリアされません。 コントロールを返すことができる次のコンテキスト・メソッドが呼び出されるまで何度でも呼び出したり、同じコントロールを戻したりすることが可能です。

      定義:
      getResponseControls、インタフェースLdapContext
      戻り値:
      nullの可能性があるコントロールの配列。 nullの場合、このコンテキストで呼び出された以前のメソッドはコントロールを生成していない。
      例外:
      NamingException - 応答コントロールの取得中にエラーが発生した場合。