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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。