JavaTM 2
Platform
Std. Ed. v1.4.0

javax.naming.ldap
クラス StartTlsResponse

java.lang.Object
  |
  +--javax.naming.ldap.StartTlsResponse
すべての実装インタフェース:
ExtendedResponse, Serializable

public abstract class StartTlsResponse
extends Object
implements ExtendedResponse

このクラスは、Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security に定義されている、LDAPv3 の StartTLS 拡張応答を実装します。StartTLS のオブジェクト識別子は 1.3.6.1.4.1.1466.20037 です。拡張応答の値は定義されていません。

StartTLS の拡張要求と拡張応答は、TLS 接続を確立するときに使用します。TLS 接続は、extendedOperation() を呼び出した JNDI コンテキストに関連付けられた既存の LDAP 接続上に確立されます。通常、JNDI プログラムでは、StartTLS の拡張要求と拡張応答のクラスを次のように使用します。

 import javax.naming.ldap.*;
 
 // Open an LDAP association
 LdapContext ctx = new InitialLdapContext();

 // Perform a StartTLS extended operation
 StartTlsResponse tls =
     (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());

 // Open a TLS connection (over the existing LDAP association) and get details
 // of the negotiated TLS session: cipher suite, peer certificate, ...
 SSLSession session = tls.negotiate();

 // ... use ctx to perform protected LDAP operations

 // Close the TLS connection (revert back to the underlying LDAP association)
 tls.close();

 // ... use ctx to perform unprotected LDAP operations

 // Close the LDAP association
 ctx.close;
 

導入されたバージョン:
1.4
関連項目:
StartTlsRequest, 直列化された形式

フィールドの概要
static String OID
          StartTLS 拡張応答に割り当てられているオブジェクト識別子は 1.3.6.1.4.1.1466.20037 です。
 
コンストラクタの概要
protected StartTlsResponse()
          StartTLS 拡張応答を構築します。
 
メソッドの概要
abstract  void close()
          TLS 接続を正常に閉じ、基本となる接続に戻ります。
 byte[] getEncodedValue()
          StartTLS 応答の ASN.1 BER で符号化された値を取得します。
 String getID()
          StartTLS 応答のオブジェクト識別子の文字列を取得します。
abstract  SSLSession negotiate()
          デフォルトの SSL ソケットファクトリを使用して、TLS セッションのネゴシエーションを行います。
abstract  SSLSession negotiate(SSLSocketFactory factory)
          デフォルトの SSL ソケットファクトリを使用して、TLS セッションのネゴシエーションを行います。
abstract  void setEnabledCipherSuites(String[] suites)
          この TLS 接続に対して使用可能になっているデフォルトの符号化方式をオーバーライドします。
abstract  void setHostnameVerifier(HostnameVerifier verifier)
          TLS ハンドシェークが完了したときに、デフォルトのホスト名検証が失敗している場合は、negotiate() によって使用されるホスト名ベリファイアを設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

OID

public static final String OID
StartTLS 拡張応答に割り当てられているオブジェクト識別子は 1.3.6.1.4.1.1466.20037 です。

関連項目:
定数フィールド値
コンストラクタの詳細

StartTlsResponse

protected StartTlsResponse()
StartTLS 拡張応答を構築します。具象サブクラスには、引数なしの public コンストラクタが必要です。

メソッドの詳細

getID

public String getID()
StartTLS 応答のオブジェクト識別子の文字列を取得します。

定義:
インタフェース ExtendedResponse 内の getID
戻り値:
オブジェクト識別子の文字列、1.3.6.1.4.1.1466.20037

getEncodedValue

public byte[] getEncodedValue()
StartTLS 応答の ASN.1 BER で符号化された値を取得します。StartTLS 応答には定義済みの値がないため、常に null が返されます。

定義:
インタフェース ExtendedResponse 内の getEncodedValue
戻り値:
null 値

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
この TLS 接続に対して使用可能になっているデフォルトの符号化方式をオーバーライドします。使用可能にする符号化方式は、SSLSocketFactory.getSupportedCipherSuites() から返される符号化方式のリストで使用可能になっていなければなりません。使用可能になっているときでも、ピアがその符号化方式をサポートしていなかったり、必要な証明書と非公開鍵を入手できなかったりする場合、その符号化方式は使用できません。

パラメータ:
suites - 使用可能にする符号化方式の名前のリスト。null は指定できない
関連項目:
negotiate()

setHostnameVerifier

public abstract void setHostnameVerifier(HostnameVerifier verifier)
TLS ハンドシェークが完了したときに、デフォルトのホスト名検証が失敗している場合は、negotiate() によって使用されるホスト名ベリファイアを設定します。setHostnameVerifier() を有効にするには、negotiate() が呼び出される前に、呼び出す必要があります。negotiate() のあとで呼び出された場合、setHostnameVerifier() は処理を実行しません。

パラメータ:
verifier - null 以外のホスト名ベリファイアのコールバック
関連項目:
negotiate()

negotiate

public abstract SSLSession negotiate()
                              throws IOException
デフォルトの SSL ソケットファクトリを使用して、TLS セッションのネゴシエーションを行います。

このメソッドは negotiate(null) と等価です。

戻り値:
ネゴシエートされた SSL セッション
例外:
IOException - TLS セッションの確立中に入出力エラーが発生した場合
関連項目:
setEnabledCipherSuites(java.lang.String[]), setHostnameVerifier(javax.net.ssl.HostnameVerifier)

negotiate

public abstract SSLSession negotiate(SSLSocketFactory factory)
                              throws IOException
デフォルトの SSL ソケットファクトリを使用して、TLS セッションのネゴシエーションを行います。

指定された SSL ソケットファクトリを使用して SSL ソケットを作成し、既存の接続に接続します。TLS ハンドシェークを行い、ネゴシエートされたセッションの情報を返します。

setEnabledCipherSuites を使用して符号化方式が設定されている場合、符号化方式は TLS ハンドシェークが始まる前に有効になります。

ホスト名検証は、TLS ハンドシェークの完了後に行われます。デフォルトのホスト名検証では、サーバのホスト名がサーバの証明書内のホスト名情報に対して照合されます。検証に失敗したときに、setHostnameVerifier によってコールバックが設定されていない場合は、ネゴシエーションは失敗します。検証に失敗したときに、setHostnameVerifier によってコールバックが設定されている場合は、そのコールバックを使用してネゴシエーションが成功しているかどうかが判定されます。

エラーが発生すると、SSL ソケットが閉じ、IOException がスローされます。基本となる接続は保持されます。

パラメータ:
factory - 使用する SSL ソケットファクトリ。null の場合もある。null の場合は、デフォルトの SSL ソケットファクトリが使用される
戻り値:
ネゴシエーションが行われた SSL セッション
例外:
IOException - TLS セッションの確立中に入出力エラーが発生した場合
関連項目:
setEnabledCipherSuites(java.lang.String[]), setHostnameVerifier(javax.net.ssl.HostnameVerifier)

close

public abstract void close()
                    throws IOException
TLS 接続を正常に閉じ、基本となる接続に戻ります。

例外:
IOException - TLS セッションを閉じるときに入出力エラーが発生した場合

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.