public abstract class SSLSocketFactory extends SocketFactory
SSLSocketFactory
はSSLSocket
を作成します。- 導入されたバージョン:
- 1.4
- 関連項目:
SSLSocket
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 SSLSocketFactory()
コンストラクタはサブクラスでだけ使用されます。 -
メソッドのサマリー
修飾子と型 メソッド 説明 Socket
createSocket(Socket s, InputStream consumed, boolean autoClose)
既存の接続済ソケットの上位サーバー・モードSocket
で、そのSocket
のベースとなるInputStream
からすでに使用/削除されたデータを読み取れるものを作成します。abstract Socket
createSocket(Socket s, String host, int port, boolean autoClose)
指定されたポートの指定されたホストに接続されている既存のソケットの上位ソケットを返します。static SocketFactory
getDefault()
デフォルトのSSLソケット・ファクトリを返します。abstract String[]
getDefaultCipherSuites()
デフォルトで使用可能になっている暗号化方式群のリストを返します。abstract String[]
getSupportedCipherSuites()
SSL接続で使用可能にできる暗号化方式群の名前を返します。クラス javax.net.SocketFactoryで宣言されたメソッド
createSocket, createSocket, createSocket, createSocket, createSocket
-
コンストラクタの詳細
-
SSLSocketFactory
public SSLSocketFactory()コンストラクタはサブクラスでだけ使用されます。
-
-
メソッドの詳細
-
getDefault
public static SocketFactory getDefault()デフォルトのSSLソケット・ファクトリを返します。このメソッドがはじめて呼び出されると、セキュリティ・プロパティssl.SocketFactory.providerが検査されます。 null以外の場合、その名前のクラスがロードされ、インスタンス化されます。 それに成功した場合、オブジェクトがSSLSocketFactoryのインスタンスであれば、そのオブジェクトはデフォルトのSSLソケット・ファクトリになります。
それ以外の場合、このメソッドは
SSLContext.getDefault().getSocketFactory()
を返します。 この呼出しに失敗した場合は、使用できないファクトリが返されます。- 戻り値:
- デフォルトの
SocketFactory
- 関連項目:
SSLContext.getDefault()
-
getDefaultCipherSuites
public abstract String[] getDefaultCipherSuites()デフォルトで使用可能になっている暗号化方式群のリストを返します。 別のリストが使用可能になっていないかぎり、SSL接続のハンドシェークではこの暗号化方式群のいずれかが使用されます。 デフォルトの暗号化方式群を使用するとき、最小限のサービス品質を保証するには、機密性保護とサーバー認証が必要です(つまり、匿名の暗号化方式群は使用できない)。返される配列には、Java Cryptography Architecture標準アルゴリズム名ドキュメントの「JSSE暗号スイート名」セクションの標準暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートも含まれます。
- 戻り値:
- デフォルトで使用可能になっている暗号化方式群の配列
- 関連項目:
getSupportedCipherSuites()
-
getSupportedCipherSuites
public abstract String[] getSupportedCipherSuites()SSL接続で使用可能にできる暗号化方式群の名前を返します。 通常は、その一部のみがデフォルトで使用可能になります。デフォルトのサービス品質要件を満たしていない暗号化方式群は、使用不可になります。 それらの暗号化方式群は、特殊なアプリケーションで使用します。返される配列には、Java Cryptography Architecture標準アルゴリズム名ドキュメントの「JSSE暗号スイート名」セクションの標準暗号スイート名のリストからの暗号スイートが含まれ、プロバイダがサポートする他の暗号スイートも含まれます。
- 戻り値:
- 暗号化方式群名の配列
- 関連項目:
getDefaultCipherSuites()
-
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
- 既存のSocket
のInputStream
からすでに削除された使用済インバウンド・ネットワーク・データ。 削除されたデータが存在しない場合、このパラメータはnull
になる可能性がある。autoClose
- このソケットを閉じるときに、ベースとなるソケットを閉じる。- 戻り値:
- このファクトリに確立されたソケット・オプションに準拠する
Socket
- 例外:
IOException
- ソケットの作成時に入出力エラーが発生した場合UnsupportedOperationException
- ベースとなるプロバイダがこの操作を実装していない場合NullPointerException
-s
がnull
である場合- 導入されたバージョン:
- 1.8
-