| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjava.net.ServerSocket
javax.net.ssl.SSLServerSocket
public abstract class SSLServerSocket
このクラスは ServerSocket を拡張し、Secure Sockets Layer (SSL) や Transport Layer Security (TLS) などのプロトコルを使用するセキュアサーバーソケットを提供します。
 
このクラスのインスタンスを作成するときは、通常、SSLServerSocketFactory を使用します。SSLServerSocket は、接続を accept して SSLSocket を作成します。
 
SSLServerSocket の一部の状態データは、作成される SSLSocket に継承されます。たとえば、有効になっている暗号化方式群とプロトコル、クライアント認証が必要かどうか、このソケットがハンドシェークを開始するときのモード (クライアントモードまたはサーバーモード)、などの情報が継承されます。作成された SSLSocket に継承された状態は、対応するメソッドを呼び出してオーバーライドできます。
ServerSocket, 
SSLSocket| コンストラクタの概要 | |
|---|---|
| protected  | SSLServerSocket()サブクラスでだけ使用されます。 | 
| protected  | SSLServerSocket(int port)サブクラスでだけ使用されます。 | 
| protected  | SSLServerSocket(int port,
                int backlog)サブクラスでだけ使用されます。 | 
| protected  | SSLServerSocket(int port,
                int backlog,
                InetAddress address)サブクラスでだけ使用されます。 | 
| メソッドの概要 | |
|---|---|
| abstract  String[] | getEnabledCipherSuites()新しく受け入れた接続で現在使用可能になっている暗号化方式群のリストを返します。 | 
| abstract  String[] | getEnabledProtocols()新しく受け入れた接続で現在使用可能になっているプロトコル名を返します。 | 
| abstract  boolean | getEnableSessionCreation()このサーバーソケットから作成されたソケットで、新しい SSL セッションを確立する場合は true を返します。 | 
| abstract  boolean | getNeedClientAuth()新しく acceptしたサーバーモードのSSLSocket上でクライアント認証が「必須」の場合、true を返します。 | 
| abstract  String[] | getSupportedCipherSuites()SSL 接続で使用可能にできる暗号化方式群の名前を返します。 | 
| abstract  String[] | getSupportedProtocols()使用可能にできるプロトコルの名前を返します。 | 
| abstract  boolean | getUseClientMode()受け入れた接続が SSL クライアントモードになる場合は true を返します。 | 
| abstract  boolean | getWantClientAuth()新しく受け入れたサーバーモードの接続上でクライアント認証が「要求」される場合、true を返します。 | 
| abstract  void | setEnabledCipherSuites(String[] suites)受け入れられた接続で使用可能な暗号化方式群を設定します。 | 
| abstract  void | setEnabledProtocols(String[] protocols)受け入れた接続で使用可能なプロトコルを制御します。 | 
| abstract  void | setEnableSessionCreation(boolean flag)このサーバーソケットから作成されたソケットで、新しい SSL セッションを確立すかどうかを制御します。 | 
| abstract  void | setNeedClientAuth(boolean need)受け入れた サーバーモードのSSLSocketsで、クライアント認証が「必須」とされるように初期設定するかどうかを制御します。 | 
| abstract  void | setUseClientMode(boolean mode)受け入れた接続がデフォルトで SSL サーバーモードになるか、SSL クライアントモードになるかを制御します。 | 
| abstract  void | setWantClientAuth(boolean want)受け入れた サーバーモードのSSLSocketsが、クライアント認証を「要求」するように初期設定するかどうかを制御します。 | 
| クラス java.net.ServerSocket から継承されたメソッド | 
|---|
| accept, bind, bind, close, getChannel, getInetAddress, getLocalPort, getLocalSocketAddress, getReceiveBufferSize, getReuseAddress, getSoTimeout, implAccept, isBound, isClosed, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSocketFactory, setSoTimeout, toString | 
| クラス java.lang.Object から継承されたメソッド | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| コンストラクタの詳細 | 
|---|
protected SSLServerSocket()
                   throws IOException
デフォルトの認証コンテキストを使用して、バインドされていない TCP サーバーソケットを作成します。
IOException - ソケットの作成中に入出力エラーが発生した場合
protected SSLServerSocket(int port)
                   throws IOException
デフォルトの認証コンテキストを使用して、ポート上に TCP サーバーソケットを作成します。キューに格納される接続バックログの最大数は、デフォルトで 50 に設定されています。 キュー内の接続要求が最大数を超えると、新しい接続要求は拒否されます。
port - 待機するポート
IOException - ソケットの作成中に入出力エラーが発生した場合
protected SSLServerSocket(int port,
                          int backlog)
                   throws IOException
デフォルトの認証コンテキストと、指定された接続バックログを使用して、ポート上に TCP サーバーソケットを作成します。
port - 待機するポートbacklog - 最大保留接続数。 この接続数を超えると、新しい要求が拒否される
IOException - ソケットの作成中に入出力エラーが発生した場合
protected SSLServerSocket(int port,
                          int backlog,
                          InetAddress address)
                   throws IOException
デフォルトの認証コンテキスト、指定された接続バックログ、および指定されたネットワークインタフェースを使用して、ポート上に TCP サーバーソケットを作成します。このコンストラクタは、ファイアウォールやルータとして使用されるマルチホームホスト上で使用され、ネットワークサービスを提供するインタフェースを制御します。
port - 待機するポートbacklog - 最大保留接続数。 この接続数を超えると、新しい要求が拒否されるaddress - 接続を受け入れるネットワークインタフェースのアドレス
IOException - ソケットの作成中に入出力エラーが発生した場合| メソッドの詳細 | 
|---|
public abstract String[] getEnabledCipherSuites()
このリストが明示的に変更されていない場合は、システムデフォルトにより、使用可能なすべての暗号化方式群で、最小限のサービス品質が保証されます。
実際に使用する暗号化方式群は、要件に応じて適切に選択してください。たとえば、サーバーソケットがなんらかの認証を要求するように設定されているときに、暗号化方式群で使用できる非公開鍵がサーバーソケットに割り当てられていない場合、または暗号化方式群が匿名であるためクライアント認証を使用できない場合、それらの暗号化方式群は実際には使用できません。
getSupportedCipherSuites(), 
setEnabledCipherSuites(String [])public abstract void setEnabledCipherSuites(String[] suites)
暗号化方式群は、getSupportedCipherSuites() により、サポート対象としてリストされていなければいけません。このメソッドの呼び出しが正常に行われたとき、suites パラメータにリストされた暗号化方式群のみ、使用することができます。
 
この ServerSocket の認証コンテキストで使用できない認証情報を要求する暗号化方式群は、たとえ有効になっていても使用されません。
accept() から返される SSLSocket は、この設定を継承します。
suites - 使用可能にするすべての暗号化方式群の名前
IllegalArgumentException - パラメータに指定された暗号化方式群の一部がサポートされない場合、またはパラメータが null の場合getSupportedCipherSuites(), 
getEnabledCipherSuites()public abstract String[] getSupportedCipherSuites()
通常は、その一部だけがデフォルトで使用可能になります。 デフォルトのサービス品質要件を満たしていない暗号化方式群は、使用不可になります。それらの暗号化方式群は、特殊なアプリケーションで使用します。
getEnabledCipherSuites(), 
setEnabledCipherSuites(String [])public abstract String[] getSupportedProtocols()
getEnabledProtocols(), 
setEnabledProtocols(String [])public abstract String[] getEnabledProtocols()
getSupportedProtocols(), 
setEnabledProtocols(String [])public abstract void setEnabledProtocols(String[] protocols)
プロトコルは、getSupportedProtocols() により、サポート対象としてリストされていなければいけません。このメソッドの呼び出しが正常に行われたとき、protocols パラメータにリストされたプロトコルのみ、使用することができます。
 
accept() から返される SSLSocket は、この設定を継承します。
protocols - 使用可能にするすべてのプロトコルの名前
IllegalArgumentException - パラメータに指定されたプロトコルの一部がサポートされない場合、またはパラメータが null の場合getEnabledProtocols(), 
getSupportedProtocols()public abstract void setNeedClientAuth(boolean need)
SSLSockets で、クライアント認証が「必須」とされるように初期設定するかどうかを制御します。
 ソケットのクライアント認証設定は、次のいずれかになります。
setWantClientAuth(boolean) と異なり、受け入れたソケットのオプションが設定されていて、かつクライアント認証情報が提供されない場合は、ネゴシエーションが停止し、接続が切断されます。
 
このメソッドを呼び出すと、これまでにこのメソッドまたは setWantClientAuth(boolean) によって設定された内容がオーバーライドされます。
 
SSLSocket.setNeedClientAuth(boolean) または SSLSocket.setWantClientAuth(boolean) を呼び出すと、継承された初期設定がオーバーライドされます。
need - クライアント認証が必須の場合は true、クライアント認証が不要な場合は falsegetNeedClientAuth(), 
setWantClientAuth(boolean), 
getWantClientAuth(), 
setUseClientMode(boolean)public abstract boolean getNeedClientAuth()
accept したサーバーモードの SSLSocket 上でクライアント認証が「必須」の場合、true を返します。
SSLSocket.setNeedClientAuth(boolean) または SSLSocket.setWantClientAuth(boolean) を呼び出すと、継承された初期設定がオーバーライドされます。
setNeedClientAuth(boolean), 
setWantClientAuth(boolean), 
getWantClientAuth(), 
setUseClientMode(boolean)public abstract void setWantClientAuth(boolean want)
SSLSockets が、クライアント認証を「要求」するように初期設定するかどうかを制御します。
 ソケットのクライアント認証設定は、次のいずれかになります。
setNeedClientAuth(boolean) と異なり、受け入れたソケットのオプションが設定されていて、かつクライアント認証情報が提供されない場合でも、ネゴシエーションは続行されます。
 
このメソッドを呼び出すと、これまでにこのメソッドまたは setNeedClientAuth(boolean) によって設定された内容がオーバーライドされます。
 
SSLSocket.setNeedClientAuth(boolean) または SSLSocket.setWantClientAuth(boolean) を呼び出すと、継承された初期設定がオーバーライドされます。
want - クライアント認証が要求された場合は true、クライアント認証が不要な場合は falsegetWantClientAuth(), 
setNeedClientAuth(boolean), 
getNeedClientAuth(), 
setUseClientMode(boolean)public abstract boolean getWantClientAuth()
SSLSocket.setNeedClientAuth(boolean) または SSLSocket.setWantClientAuth(boolean) を呼び出すと、継承された初期設定がオーバーライドされます。
setWantClientAuth(boolean), 
setNeedClientAuth(boolean), 
getNeedClientAuth(), 
setUseClientMode(boolean)public abstract void setUseClientMode(boolean mode)
通常、サーバーは自身を認証しますが、クライアントは必ずしもそうとは限りません。
新しく受け入れた接続が、SSL クライアントモードの TCP サーバーを要求することがあります。たとえば、FTP クライアントは、サーバーソケットを取得すると、そのソケット上でサーバーからの接続を待機します。FTP クライアントは、サーバーからの接続を受け入れるときに、クライアントモードの SSLServerSocket を使用します。 FTP サーバーは、接続を開始するときにクライアントモードを無効にした SSLSocket を使用します。この場合、ハンドシェークを行うときは、既存の SSL セッションが再利用されます。
accept() から返される SSLSocket は、この設定を継承します。
mode - 新しく受け入れた接続が SSL クライアントモードを使用する場合は truegetUseClientMode()public abstract boolean getUseClientMode()
setUseClientMode(boolean)public abstract void setEnableSessionCreation(boolean flag)
accept() から返される SSLSocket は、この設定を継承します。
flag - セッションを作成する場合は true (デフォルト)。既存のセッションを再開する場合は false。getEnableSessionCreation()public abstract boolean getEnableSessionCreation()
setEnableSessionCreation(boolean)| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。