JavaTM Platform
Standard Ed. 6

javax.naming.ldap
クラス InitialLdapContext

java.lang.Object
  上位を拡張 javax.naming.InitialContext
      上位を拡張 javax.naming.directory.InitialDirContext
          上位を拡張 javax.naming.ldap.InitialLdapContext
すべての実装されたインタフェース:
Context, DirContext, LdapContext

public class InitialLdapContext
extends InitialDirContext
implements LdapContext

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

同期に関する詳細、初期コンテキストの作成方針については、javax.naming.InitialContext および javax.naming.InitialDirContext を参照してください。

要求コントロール

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
関連項目:
LdapContext, InitialContext, InitialDirContext, NamingManager.setInitialContextFactoryBuilder(javax.naming.spi.InitialContextFactoryBuilder)

フィールドの概要
 
クラス javax.naming.InitialContext から継承されたフィールド
defaultInitCtx, gotDefault, myProps
 
インタフェース javax.naming.ldap.LdapContext から継承されたフィールド
CONTROL_FACTORIES
 
インタフェース javax.naming.directory.DirContext から継承されたフィールド
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE
 
インタフェース javax.naming.Context から継承されたフィールド
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES
 
コンストラクタの概要
InitialLdapContext()
          環境プロパティーまたは接続要求コントロールを使用しないで、初期コンテキストを構築します。
InitialLdapContext(Hashtable<?,?> environment, Control[] connCtls)
          環境プロパティーおよび接続要求コントロールを使用して、初期コンテキストを構築します。
 
メソッドの概要
 ExtendedResponse extendedOperation(ExtendedRequest request)
          拡張操作を実行します。
 Control[] getConnectControls()
          このコンテキストに有効な接続要求コントロールを取得します。
 Control[] getRequestControls()
          このコンテキストに有効な要求コントロールを取得します。
 Control[] getResponseControls()
          このコンテキストで最後に呼び出されたメソッドの結果として生成された応答コントロールを取得します。
 LdapContext newInstance(Control[] reqCtls)
          このコンテキストの新しいインスタンスを要求コントロールを使って生成します。
 void reconnect(Control[] connCtls)
          指定されたコントロールとこのコンテキスト環境を使って LDAP サーバーに再接続します。
 void setRequestControls(Control[] requestControls)
          このコンテキストで引き続き呼び出されるメソッドに要求コントロールを設定します。
 
クラス javax.naming.directory.InitialDirContext から継承されたメソッド
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
 
クラス javax.naming.InitialContext から継承されたメソッド
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, doLookup, doLookup, getDefaultInitCtx, getEnvironment, getNameInNamespace, getNameParser, getNameParser, getURLOrDefaultInitCtx, getURLOrDefaultInitCtx, init, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース javax.naming.directory.DirContext から継承されたメソッド
bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search
 
インタフェース javax.naming.Context から継承されたメソッド
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind
 

コンストラクタの詳細

InitialLdapContext

public InitialLdapContext()
                   throws NamingException
環境プロパティーまたは接続要求コントロールを使用しないで、初期コンテキストを構築します。new InitialLdapContext(null, null) と同等です。

例外:
NamingException - ネーミング例外が発生した場合

InitialLdapContext

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

このコンストラクタでは、パラメータの変更または参照の保存は行われませんが、複製またはコピーが保存されます。

connCtls は、基となるコンテキストインスタンスの接続要求コントロールとして使用されます。詳細については、クラスについての記述を参照してください。

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

extendedOperation

public ExtendedResponse extendedOperation(ExtendedRequest request)
                                   throws NamingException
インタフェース LdapContext の記述:
拡張操作を実行します。 このメソッドを使用して、LDAPv3 拡張操作をサポートします。

定義:
インタフェース LdapContext 内の extendedOperation
パラメータ:
request - 実行する null 以外の要求
戻り値:
null の可能性がある操作の応答。null は、 操作をしても応答は何も生成されないことを示す
例外:
NamingException - 拡張操作の実行中にエラーが発生した場合

newInstance

public LdapContext newInstance(Control[] reqCtls)
                        throws NamingException
インタフェース LdapContext の記述:
このコンテキストの新しいインスタンスを要求コントロールを使って生成します。 このメソッドは、マルチスレッドのアクセスのためにこのコンテキストインスタンスを新たに作成する便利な手法です。たとえば、複数のスレッドがそれぞれ異なるコンテキスト要求コントロールを使用したい場合、各スレッドは、ほかのスレッドと同期する必要がなく、このメソッドを使用して、このコンテキスト独自のコピーを取得し、コンテキスト要求コントロールを設定または取得できます。

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

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

reconnect

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

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

このメソッドでは、このコンテキストの connCtls を新規接続要求コントロールとなるように設定します。このコンテキストのコンテキスト要求コントロールは影響を受けません。このメソッドが呼び出されると、そのあとに続く暗黙的な再接続が connCtls を使用して実行されます。 connCtls はまた、接続要求コントロールとして、このコンテキストから派生した新規コンテキストインスタンスにも使用されます。これらの接続要求コントロールは、setRequestControls() の影響を受けません。

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

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

getConnectControls

public Control[] getConnectControls()
                             throws NamingException
インタフェース LdapContext の記述:
このコンテキストに有効な接続要求コントロールを取得します。コントロールは、JNDI 実装が所有していて、不変です。配列、コントロールのどちらも、呼び出し側は変更できません。

定義:
インタフェース LdapContext 内の getConnectControls
戻り値:
null の可能性があるコントロールの配列。null は、このコンテキストに対して接続コントロールが 設定されていないことを示す
例外:
NamingException - 要求コントロールの取得中に、エラーが発生した場合

setRequestControls

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

以前の要求コントロールをすべて削除し、引き続きこのコンテキストで呼び出されるメソッドが使用するためにrequestControls を追加します。

requestControls は、次に setRequestControls() を呼び出すまで有効です。これ以上コンテキストメソッドに影響を与えたくない場合は、コントロールを解除するために、null または空の配列を持つ setRequestControls() を明示的に呼び出す必要があります。このコンテキストに効果的な要求コントロールを確認するには、getRequestControls() を使用します。

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

getRequestControls

public Control[] getRequestControls()
                             throws NamingException
インタフェース LdapContext の記述:
このコンテキストに有効な要求コントロールを取得します。この要求コントロールは、JNDI 実装が所有していて、不変です。配列、コントロールのどちらも、呼び出し側は変更できません。

定義:
インタフェース LdapContext 内の getRequestControls
戻り値:
null の可能性があるコントロールの配列。null は、このコンテキストに対して要求コントロールが 設定されていないことを示す
例外:
NamingException - 要求コントロールの取得中に、エラーが発生した場合
関連項目:
LdapContext.setRequestControls(javax.naming.ldap.Control[])

getResponseControls

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

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

応答コントロールを返すことができるコンテキストメソッドが呼び出されると、以前のメソッド呼び出しからの応答コントロールはすべて解除されます。 getResponseControls() は、LDAP サーバーから受け取った順序で、コンテキストメソッドが操作した LDAP によって生成されるすべての応答コントロールを返します。getResponseControls() を呼び出すと、以前の応答コントロールは解除されません。コントロールを返すことができる次のコンテキストメソッドが呼び出されるまで何度でも呼び出したり、同じコントロールを戻したりすることが可能です。

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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。