public interface LdapContext extends DirContext
要求コントロールには次の 2 つのタイプがあります。
明示的に指定されていない場合、要求コントロールという用語はコンテキスト要求コントロールのことです。
環境プロパティーとは異なり、コンテキストインスタンスの要求コントロールは、そのインスタンスから派生したコンテキストインスタンスによって継承されません。派生したコンテキストインスタンスのコンテキスト要求コントロールは null になります。派生したコンテキストインスタンスの要求コントロールは、setRequestControls() を使用して明示的に設定しなければなりません。
コンテキストインスタンスの要求コントロールは、getRequestControls() メソッドを使って取得されます。
環境プロパティーと同様に、コンテキストの接続要求コントロールは、そのコンテキストから派生したコンテキストによって継承されます。通常は、InitialLdapContext コンストラクタ、または LdapReferralContext.getReferralContext() を使用して、接続要求コントロールを初期化します。これらの接続要求コントロールは、同じ接続を共有しているコンテキストつまり、初期コンテキストまたは参照コンテキストから派生したコンテキストによって継承されます。
コンテキストの接続要求コントロールを変更するには、reconnect() を使用します。ldapContext.reconnect() を呼び出すと、ldapContext と ldapContext から派生した新しいコンテキストインスタンスで使用されている接続にだけ影響します。ldapContext との接続を以前から共有しているコンテキストは、影響を受けません。つまり、コンテキストの接続要求コントロールは明示的に変更される必要があり、別のコンテキストの接続要求コントロールが変更されても影響を受けません。
コンテキストインスタンスの接続要求コントロールは、getConnectControls() メソッドを使って取得されます。
| 修飾子と型 | フィールドと説明 |
|---|---|
static String |
CONTROL_FACTORIES
使用するコントロールファクトリのリストを指定するための、環境プロパティーの名前を保持する定数です。
|
ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTEAPPLET, 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| 修飾子と型 | メソッドと説明 |
|---|---|
ExtendedResponse |
extendedOperation(ExtendedRequest request)
拡張操作を実行します。
|
Control[] |
getConnectControls()
このコンテキストに有効な接続要求コントロールを取得します。
|
Control[] |
getRequestControls()
このコンテキストに有効な要求コントロールを取得します。
|
Control[] |
getResponseControls()
このコンテキストで最後に呼び出されたメソッドの結果として生成された応答コントロールを取得します。
|
LdapContext |
newInstance(Control[] requestControls)
このコンテキストの新しいインスタンスを要求コントロールを使って生成します。
|
void |
reconnect(Control[] connCtls)
指定されたコントロールとこのコンテキスト環境を使って LDAP サーバーに再接続します。
|
void |
setRequestControls(Control[] requestControls)
このコンテキストで引き続き呼び出されるメソッドに要求コントロールを設定します。
|
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, searchaddToEnvironment, 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, unbindstatic final String CONTROL_FACTORIES
この定数の値は "java.naming.factory.control" です。
ExtendedResponse extendedOperation(ExtendedRequest request) throws NamingException
request - 実行される null 以外の要求。NamingException - 拡張操作の実行中にエラーが発生した場合。LdapContext newInstance(Control[] requestControls) throws NamingException
新規コンテキストには、このコンテキストと同じ環境プロパティー、接続要求コントロールがあります。詳細については、クラスについての記述を参照してください。このコンテキストと新規コンテキストの間で、同じネットワーク接続またはその他のリソースを共有することもできます。ただし、各コンテキストの間で競合が発生する場合は、共有できません。
requestControls - 新しいコンテキストに使用する null の可能性がある要求コントロール。null の場合は、要求コントロールを使用しないで初期化される。NamingException - 新しいインスタンスの作成中にエラーが発生した場合。InitialLdapContextvoid reconnect(Control[] connCtls) throws NamingException
このメソッドは、LDAP のバインド操作を明示的に初期化する方法です。このメソッドを使って、LDAP バインド操作に要求コントロールを設定したり、またはその操作によって返される応答コントロールを取得するために明示的にサーバーに接続できます。
このメソッドは、このコンテキストの connCtls をその新しい接続要求コントロールとして設定します。このコンテキストのコンテキスト要求コントロールは影響を受けません。このメソッドが呼び出されたあと、以降の暗黙的な再接続はすべて connCtls を使用して実行されます。connCtls はまた、このコンテキストから派生した新しいコンテキストインスタンスのための接続要求コントロールとしても使用されます。これらの接続要求コントロールは、setRequestControls() の影響を受けません。
実装の詳細については、実装側であるサービスプロバイダは、クラスの「サービスプロバイダ」セクションをよく読んでください。
connCtls - 使用する null の可能性があるコントロール。null の場合、コントロールが使用されない。NamingException - 再接続中にエラーが発生した場合。getConnectControls(), newInstance(javax.naming.ldap.Control[])Control[] getConnectControls() throws NamingException
NamingException - 要求コントロールの取得中にエラーが発生した場合。void setRequestControls(Control[] requestControls) throws NamingException
これにより、以前の要求コントロールがすべて削除され、このコンテキストで呼び出される以降のメソッドが使用するための requestControls が追加されます。このメソッドは、このコンテキストの接続要求コントロールには影響を与えません。
requestControls は、setRequestControls() の次の呼び出しまで有効です。これ以上コンテキストメソッドに影響を与えたくない場合は、null または空の配列を使用して setRequestControls() を明示的に呼び出してコントロールを解除する必要があります。このコンテキストに対してどのような要求コントロールが有効かを確認するには、getRequestControls() を使用します。
requestControls - 使用する null の可能性があるコントロール。null の場合、コントロールが使用されない。NamingException - 要求コントロールの設定中にエラーが発生した場合。getRequestControls()Control[] getRequestControls() throws NamingException
NamingException - 要求コントロールの取得中にエラーが発生した場合。setRequestControls(javax.naming.ldap.Control[])Control[] getResponseControls() throws NamingException
これらの応答コントロールには、正常に終了した操作または失敗した操作によって生成されたものがあります。
応答コントロールを返す可能性のあるコンテキストメソッドが呼び出されると、以前のメソッド呼び出しからの応答コントロールが解除されます。getResponseControls() は、コンテキストメソッドで使用される LDAP 操作によって生成されたすべての応答コントロールを LDAP サーバーから受信した順序で返します。getResponseControls() を呼び出しても、応答コントロールは解除されません。コントロールを返すことができる次のコンテキストメソッドが呼び出されるまで何度でも呼び出したり、同じコントロールを戻したりすることが可能です。
NamingException - 応答コントロールの取得中にエラーが発生した場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.