JavaTM 2
Platform
Std. Ed. v1.4.0

javax.naming.ldap
インタフェース ExtendedRequest

すべてのスーパーインタフェース:
Serializable
既知の実装クラスの一覧:
StartTlsRequest

public interface ExtendedRequest
extends Serializable

このインタフェースは、「RFC 2251」で定義されている LDAPv3 拡張操作の要求を表します。

     ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
              requestName      [0] LDAPOID,
              requestValue     [1] OCTET STRING OPTIONAL }
 
この要求は、オブジェクト拡張子の文字列と任意の ASN.1 BER で符号化された値で構成されます。

このクラスのメソッドはサービスプロバイダで使用され、LDAP サーバに送るビットを構築します。一般に、アプリケーションはこのインタフェースを実装するクラスだけを処理しており、特定の拡張操作の要求に応えて必要な情報をクラスに提供します。次に LDAPv3 拡張操作を実行するために、クラスは引数として、LdapContext.extendedOperation() メソッドにパスされます。

「時間取得」の拡張操作をサポートしている LDAP サーバを例にとってみます。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();

導入されたバージョン:
1.3
関連項目:
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()
          この要求のオブジェクトの識別子を検出します。
 

メソッドの詳細

getID

public String getID()
この要求のオブジェクトの識別子を検出します。

戻り値:
LDAP の ExtendedRequest.requestName コンポーネントを示す null 以外のオブジェクト識別子の文字列

getEncodedValue

public byte[] getEncodedValue()
LDAP の拡張操作要求の ASN.1 BER で符号化された値を検出します。値が空の場合、null が返されます。この結果は、要求値のタグおよび長さを含むそのまま (raw) の BER バイトで表示されます。ただし、要求の OID は表示されません。このメソッドは、LDAP サーバに送られる拡張操作にビットを格納するため、サービスプロバイダによって呼び出されます。

戻り値:
LDAP の ExtendedRequest.requestValue コンポーネントの ASN.1 BER で符号化された内容を示す null の可能性があるバイト配列
例外:
IllegalStateException - 要求が不十分で無効なデータおよび状態を含んでいるため、符号化された値が検出されなかった場合

createExtendedResponse

public 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 の使用バイト数
戻り値:
null 以外のオブジェクト
例外:
NamingException - エラーのため拡張応答が作成できない場合
関連項目:
ExtendedResponse

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.