JavaTM 2 Platform
Standard Ed. 5.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

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

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

getEncodedValue

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

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

createExtendedResponse

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
Standard Ed. 5.0

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

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