クラスSSLSocketFactory

java.lang.Object
javax.net.SocketFactory
javax.net.ssl.SSLSocketFactory

public abstract class SSLSocketFactory extends SocketFactory
SSLSocketFactorySSLSocketを作成します。
導入されたバージョン:
1.4
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    コンストラクタはサブクラスでだけ使用されます。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    createSocket(Socket s, InputStream consumed, boolean autoClose)
    既存の接続済ソケットの上位サーバー・モードSocketで、そのSocketのベースとなるInputStreamからすでに使用/削除されたデータを読み取れるものを作成します。
    abstract Socket
    createSocket(Socket s, String host, int port, boolean autoClose)
    指定されたポートの指定されたホストに接続されている既存のソケットの上位ソケットを返します。
    デフォルトのSSLソケット・ファクトリを返します。
    abstract String[]
    デフォルトで使用可能になっている暗号化方式群のリストを返します。
    abstract String[]
    SSL接続で使用可能にできる暗号化方式群の名前を返します。

    クラスで宣言されたメソッド SocketFactory

    createSocket, createSocket, createSocket, createSocket, createSocket
    修飾子と型
    メソッド
    説明
    接続されていないソケットを作成します。
    abstract Socket
    createSocket(String host, int port)
    ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・ホストに接続します。
    abstract Socket
    createSocket(String host, int port, InetAddress localHost, int localPort)
    ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・ホストに接続します。
    abstract Socket
    createSocket(InetAddress host, int port)
    ソケットを作成し、指定されたアドレスの指定されたポート番号に接続します。
    abstract Socket
    createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)
    ソケットを作成し、指定されたリモート・ポート上の指定されたリモート・アドレスに接続します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SSLSocketFactory

      public SSLSocketFactory()
      コンストラクタはサブクラスでだけ使用されます。
  • メソッドの詳細

    • getDefault

      public static SocketFactory getDefault()
      デフォルトのSSLソケット・ファクトリを返します。

      このメソッドがはじめて呼び出されると、セキュリティ・プロパティssl.SocketFactory.providerが検査されます。 null以外の場合、その名前のクラスがロードされ、インスタンス化されます。 それに成功した場合、オブジェクトがSSLSocketFactoryのインスタンスであれば、そのオブジェクトはデフォルトのSSLソケット・ファクトリになります。

      それ以外の場合、このメソッドはSSLContext.getDefault().getSocketFactory()を返します。 この呼出しに失敗した場合は、使用できないファクトリが返されます。

      戻り値:
      デフォルトのSocketFactory
      関連項目:
    • getDefaultCipherSuites

      public abstract String[] getDefaultCipherSuites()
      デフォルトで使用可能になっている暗号化方式群のリストを返します。 別のリストが使用可能になっていないかぎり、SSL接続のハンドシェークではこの暗号化方式群のいずれかが使用されます。 デフォルトの暗号化方式群を使用するとき、最小限のサービス品質を保証するには、機密性保護とサーバー認証が必要です(つまり、匿名の暗号化方式群は使用できない)。

      返される配列には、Java Security Standard Algorithm Names Specificationの「JSSE暗号スイート名」セクションにある標準の暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートが含まれる場合もあります。

      戻り値:
      デフォルトで使用可能になっている暗号化方式群の配列
      外部仕様
      関連項目:
    • getSupportedCipherSuites

      public abstract String[] getSupportedCipherSuites()
      SSL接続で使用可能にできる暗号化方式群の名前を返します。 通常は、その一部のみがデフォルトで使用可能になります。デフォルトのサービス品質要件を満たしていない暗号化方式群は、使用不可になります。 それらの暗号化方式群は、特殊なアプリケーションで使用します。

      返される配列には、Java Security Standard Algorithm Names Specificationの「JSSE暗号スイート名」セクションにある標準の暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートが含まれる場合もあります。

      戻り値:
      暗号化方式群名の配列
      外部仕様
      関連項目:
    • createSocket

      public abstract Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException
      指定されたポートの指定されたホストに接続されている既存のソケットの上位ソケットを返します。 このコンストラクタを使用すれば、SSLからプロキシのトンネルを確立したり、既存のソケットの上位でSSLを使用するようにネゴシエートしたりできます。 指定するホストとポートは、論理接続先を示します。 ソケットは、このファクトリに設定されているソケット・オプションを使用して構成されます。
      パラメータ:
      s - 既存のソケット
      host - サーバー・ホスト
      port - サーバー・ポート
      autoClose - このソケットを閉じるときに、ベースとなるソケットを閉じる
      戻り値:
      指定されたホストとポートに接続されるソケット
      スロー:
      IOException - ソケットの作成時に入出力エラーが発生した場合
      NullPointerException - パラメータsがnullである場合
    • createSocket

      public Socket createSocket(Socket s, InputStream consumed, boolean autoClose) throws IOException
      既存の接続済ソケットの上位サーバー・モードSocketで、そのSocketのベースとなるInputStreamからすでに使用/削除されたデータを読み取れるものを作成します。

      このメソッドは、Server Name Indication (SNI)拡張(TLS拡張(RFC6066)のセクション3を参照)の検査など、インバウンド・データを監視しながらも有効なSSL/TLS接続を作成する必要のあるサーバー・アプリケーションに使用できます。 このメソッドを呼び出す前に、ベースとなるInputStreamからすでに削除されたデータを、ByteArrayInputStreamなどを使ってconsumedストリーム内にロードしておく必要があります。 このSocketがハンドシェイクを開始すると、EOFに達するまでconsumed内のすべてのデータが読み取られ、以降のすべてのデータは通常どおり基礎となるInputStreamから読み取られます。

      返されるソケットは、このファクトリに確立されたソケット・オプションを使用して構成され、ハンドシェーク時にサーバー・モードを使用するように設定されます(SSLSocket.setUseClientMode(boolean)を参照)。

      パラメータ:
      s - 既存のソケット
      consumed - 既存のSocketInputStreamからすでに削除された使用済インバウンド・ネットワーク・データ。 削除されたデータが存在しない場合、このパラメータはnullになる可能性がある。
      autoClose - このソケットを閉じるときに、ベースとなるソケットを閉じる。
      戻り値:
      このファクトリに確立されたソケット・オプションに準拠するSocket
      スロー:
      IOException - ソケットの作成時に入出力エラーが発生した場合
      UnsupportedOperationException - ベースとなるプロバイダがこの操作を実装していない場合
      NullPointerException - snullである場合
      導入されたバージョン:
      1.8
      外部仕様