java.lang.Object
javax.naming.ldap.StartTlsResponse
- すべての実装されたインタフェース:
Serializable,ExtendedResponse
public abstract class StartTlsResponse extends Object implements ExtendedResponse
このクラスは、Lightweight Directory Access Protocol (v3): Extension for Transport Layer Securityで定義された、StartTLSのLDAPv3拡張応答を実装します。StartTLSのオブジェクト識別子は1.3.6.1.4.1.1466.20037です。拡張応答の値は定義されていません。
Start TLSの拡張要求と拡張応答は、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, 直列化された形式
-
フィールドのサマリー
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedStartTlsResponse()StartTLS拡張応答を構築します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 abstract voidclose()TLS接続を正常に閉じ、ベースとなる接続に戻ります。byte[]getEncodedValue()StartTLS応答のASN.1 BERでエンコードされた値を取得します。StringgetID()StartTLS応答のオブジェクト識別子の文字列を取得します。abstract SSLSessionnegotiate()デフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。abstract SSLSessionnegotiate(SSLSocketFactory factory)デフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。abstract voidsetEnabledCipherSuites(String[] suites)このTLS接続に対して使用可能になっているデフォルトの暗号化方式群をオーバーライドします。abstract voidsetHostnameVerifier(HostnameVerifier verifier)TLSハンドシェークが完了したときに、デフォルトのホスト名検証が失敗している場合は、negotiate()によって使用されるホスト名ベリファイアを設定します。
-
フィールド詳細
-
コンストラクタの詳細
-
StartTlsResponse
protected StartTlsResponse()StartTLS拡張応答を構築します。 具象サブクラスには、引数なしのpublicコンストラクタが必要です。
-
-
メソッドの詳細
-
getID
public String getID()StartTLS応答のオブジェクト識別子の文字列を取得します。- 定義:
getID、インタフェース:ExtendedResponse- 戻り値:
- オブジェクト識別子の文字列、1.3.6.1.4.1.1466.20037。
-
getEncodedValue
public byte[] getEncodedValue()StartTLS応答のASN.1 BERでエンコードされた値を取得します。 応答には定義済みの値がないため、常にnullが返されます。- 定義:
getEncodedValue、インタフェース:ExtendedResponse- 戻り値:
- 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()の後で呼び出された場合、このメソッドは何も実行しません。- パラメータ:
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 IOExceptionTLS接続を正常に閉じ、ベースとなる接続に戻ります。- 例外:
IOException- TLS接続の終了中に入出力エラーが発生した場合。
-