public abstract class StartTlsResponse extends Object implements ExtendedResponse
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;
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()によって使用されるホスト名ベリファイアを設定します。
|
protected StartTlsResponse()
public String getID()
getID
、インタフェース: ExtendedResponse
public byte[] getEncodedValue()
getEncodedValue
、インタフェース: ExtendedResponse
public abstract void setEnabledCipherSuites(String[] suites)
suites
- 使用可能にする暗号化方式群の名前のリスト。nullは指定できない。negotiate()
public abstract void setHostnameVerifier(HostnameVerifier verifier)
verifier
- null以外のホスト名ベリファイアのコールバック。negotiate()
public abstract SSLSession negotiate() throws IOException
このメソッドはnegotiate(null)と等価です。
IOException
- TLSセッションの確立中に入出力エラーが検出された場合。setEnabledCipherSuites(java.lang.String[])
, setHostnameVerifier(javax.net.ssl.HostnameVerifier)
public abstract SSLSession negotiate(SSLSocketFactory factory) throws IOException
指定されたSSLソケット・ファクトリを使用してSSLソケットを作成し、既存の接続に接続します。TLSハンドシェークを行い、ネゴシエートされたセッションの情報を返します。
setEnabledCipherSuitesを使用して暗号化方式群が設定されている場合、暗号化方式群はTLSハンドシェークが始まる前に有効になります。
ホスト名検証は、TLSハンドシェークの完了後に行われます。デフォルトのホスト名検証では、サーバーのホスト名がサーバーの証明書内のホスト名情報に対して照合されます。検証に失敗したときに、setHostnameVerifierによってコールバックが設定されていない場合は、ネゴシエーションは失敗します。検証に失敗したときに、setHostnameVerifierによってコールバックが設定されている場合は、そのコールバックを使用してネゴシエーションが成功しているかどうかが判定されます。
エラーが発生すると、SSLソケットが閉じ、IOExceptionがスローされます。ベースとなる接続は保持されます。
factory
- 使用するSSLソケット・ファクトリ。nullの場合もある。nullの場合は、デフォルトのSSLソケット・ファクトリが使用される。IOException
- TLSセッションの確立中に入出力エラーが検出された場合。setEnabledCipherSuites(java.lang.String[])
, setHostnameVerifier(javax.net.ssl.HostnameVerifier)
public abstract void close() throws IOException
IOException
- TLS接続の終了中に入出力エラーが発生した場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.