モジュール java.naming
パッケージ javax.naming.ldap

クラス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の拡張要求と拡張応答は、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
    StartTLS拡張応答に割り当てられているオブジェクト識別子は1.3.6.1.4.1.1466.20037です。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    StartTLS拡張応答を構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    TLS接続を正常に閉じ、ベースとなる接続に戻ります。
    byte[]
    StartTLS応答のASN.1 BERでエンコードされた値を取得します。
    StartTLS応答のオブジェクト識別子の文字列を取得します。
    abstract SSLSession
    デフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。
    abstract SSLSession
    デフォルトのSSLソケット・ファクトリを使用して、TLSセッションのネゴシエーションを行います。
    abstract void
    このTLS接続に対して使用可能になっているデフォルトの暗号化方式群をオーバーライドします。
    abstract void
    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応答のオブジェクト識別子の文字列を取得します。
      定義:
      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 IOException
      TLS接続を正常に閉じ、ベースとなる接続に戻ります。
      例外:
      IOException - TLS接続の終了中に入出力エラーが発生した場合。