public interface ExtendedRequest extends Serializable
ExtendedRequest ::= [APPLICATION 23] SEQUENCE { requestName [0] LDAPOID, requestValue [1] OCTET STRING OPTIONAL }この要求は、オブジェクト拡張子の文字列と任意のASN.1 BERでエンコードされた値で構成されます。
このクラスのメソッドはサービス・プロバイダで使用され、LDAPサーバーに送るビットを構築します。一般に、アプリケーションはこのインタフェースを実装するクラスだけを処理しており、特定の拡張操作の要求にこたえて必要な情報をクラスに提供します。次にLDAPv3拡張操作を実行するために、クラスは引数として、LdapContext.extendedOperation()メソッドにパスされます。
「時間取得」の拡張操作をサポートしたLDAPサーバーを例にとります。それは、GetTimeRequestおよびGetTimeResponseのクラスを次のように指定します。
プログラムはこれらのクラスを次のように使用します。public class GetTimeRequest implements ExtendedRequest { public GetTimeRequest() {... }; public ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException { return new GetTimeResponse(id, berValue, offset, length); } ... } public class GetTimeResponse implements ExtendedResponse { long time; public GetTimeResponse(String id, byte[] berValue, int offset, int length) throws NamingException { time = ... // decode berValue to get time } public java.util.Date getDate() { return new java.util.Date(time) }; public long getTime() { return time }; ... }
GetTimeResponse resp = (GetTimeResponse) ectx.extendedOperation(new GetTimeRequest()); long time = resp.getTime();
ExtendedResponse
, LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)
修飾子と型 | メソッドと説明 |
---|---|
ExtendedResponse |
createExtendedResponse(String id, byte[] berValue, int offset, int length)
この要求に対応する応答オブジェクトを作成します。
|
byte[] |
getEncodedValue()
LDAPの拡張操作要求のASN.1 BERでエンコードされた値を取得します。
|
String |
getID()
この要求のオブジェクトの識別子を検出します。
|
String getID()
byte[] getEncodedValue()
IllegalStateException
- 要求が不十分または無効なデータおよび状態を含んでいるため、エンコードされた値が検出されなかった場合。ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException
サービス・プロバイダが拡張操作の要求をLDAPサーバーに送ったあと、このサーバーから応答を受け取ります。操作の要求が失敗すると、プロバイダはNamingExceptionをスローします。操作が正常に終了すると、プロバイダはこのメソッドを応答に戻ったデータを使って呼び出します。拡張操作の要求に任意のExtendedResponseインタフェースを実装するクラスを返すのが、このメソッドのジョブになります。
たとえば、Start TLS拡張要求クラスは、Start TLS拡張応答の処理方法を認識する必要があります。このために、ExtendedResponseを実装するクラスを作成します。
id
- 応答コントロールのnullの可能性があるオブジェクト識別子。berValue
- nullの可能性のある応答コントロールのASN.1 BERでエンコードされた値。この値は、応答値のタグと長さを含むraw BERバイトである。ただし、応答OIDは含まない。offset
- 使用するバイトのberValue内の開始位置。length
- 使用するberValue内のバイト数。NamingException
- エラーのため拡張応答が作成できない場合。ExtendedResponse
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.