クラスStartTlsResponse
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拡張リクエストおよびレスポンスは、extendedOperation()が呼び出されるJNDIコンテキストに関連付けられた既存のLDAP接続を介してTLS接続を確立するために使用されます。 通常、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
- 関連項目:
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract voidclose()TLS接続を正常に閉じ、ベースとなる接続に戻ります。byte[]StartTLS応答のASN.1 BERでエンコードされた値を取得します。getID()StartTLS応答のオブジェクト識別子の文字列を取得します。abstract SSLSessionデフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。abstract SSLSessionnegotiate(SSLSocketFactory factory) デフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。abstract voidsetEnabledCipherSuites(String[] suites) このTLS接続に対して使用可能になっているデフォルトの暗号化方式群をオーバーライドします。abstract voidsetHostnameVerifier(HostnameVerifier verifier) TLSハンドシェイクが完了し、デフォルトのホスト名の検証に失敗したあとに、negotiate()で使用されるホスト名検証を設定します。
-
フィールド詳細
-
OID
-
-
コンストラクタの詳細
-
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は指定できない。- 関連項目:
-
setHostnameVerifier
public abstract void setHostnameVerifier(HostnameVerifier verifier) TLSハンドシェイクが完了し、デフォルトのホスト名検証が失敗した後、negotiate()で使用されるホスト名検証を設定します。有効にするには、negotiate()が呼び出される前に、setHostnameVerifier()をコールする必要があります。negotiate()のあとに呼び出された場合、このメソッドは何も行いません。- パラメータ:
verifier- null以外のホスト名ベリファイアのコールバック。- 関連項目:
-
negotiate
public abstract SSLSession negotiate() throws IOExceptionデフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。このメソッドは
negotiate(null)と同等です。- 戻り値:
- ネゴシエーションが行われたSSLセッション
- スロー:
IOException- TLSセッションの確立中に入出力エラーが検出された場合。- 関連項目:
-
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セッションの確立中に入出力エラーが検出された場合。- 関連項目:
-
close
public abstract void close() throws IOExceptionTLS接続を正常に閉じ、ベースとなる接続に戻ります。- スロー:
IOException- TLS接続の終了中に入出力エラーが発生した場合。
-