public abstract class StartTlsResponse extends Object implements ExtendedResponse
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;
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, 2013, Oracle and/or its affiliates. All rights reserved.