This class is an SSL-enabled subclass of
java.net.ServerSocket that is used to listen for
and accept connections from clients and to create
SSLSocket objects for communicating with those
clients. Create an SSLServerSocket and bind it to
a local port by calling one of the inherited
getServerSocket(
) methods of an
SSLServerSocketFactory. Once a
SSLServerSocket is created, use it as you would a
regular ServerSocket: call the inherited
accept( ) method to wait for and accept a
connection from a client, returning a Socket
object. With SSLServerSocket, the
Socket returned by accept( )
can always be cast to an instance of SSLSocket.
SSLServerSocket defines methods for setting the
enabled protocols and cipher
suites, and for querying the full set of supported protocols and
suites. See SSLSocket, which has methods with the same names,
for details. If your server desires or requires authentication by its
clients, call setWantClientAuth(
) or setNeedClientAuth( ).
These methods cause the SSLSocket objects returned
by accept( ) to be configured to request or
require client authentication.
In typical SSL networking scenarios, the client requires the server
to provide authentication information. When you create an
SSLServerSocket using the default
SSLServerSocketFactory, the authentication
information required is an X.509 public key certificate and the
corresponding private key. The default
SSLServerSocketFactory uses an
X509KeyManager to obtain this information. The
default X509KeyManager attempts to read this
information from the java.security.KeyStore file
specified by the system property
javax.net.ssl.keyStore. It uses the value of the
the javax.net.ssl.keyStorePassword as the keystore
password, and uses the value of the
javax.net.ssl.keyStoreType system property to
specify the keystore type. The key store should only contain valid
keys and certificate chains that identify the server; the
X509KeyManager automatically chooses a key and
certificat chain that are appropriate for the client.
public abstract class
SSLServerSocket extends java.net.ServerSocket {
// Protected Constructors
protected
SSLServerSocket ( ) throws java.io.IOException;
protected
SSLServerSocket (int
port ) throws java.io.IOException;
protected
SSLServerSocket (int
port , int
backlog ) throws java.io.IOException;
protected
SSLServerSocket (int
port , int
backlog , java.net.InetAddress
address )
throws java.io.IOException;
// Public Instance Methods
public abstract String[ ]
getEnabledCipherSuites ( );
public abstract String[ ]
getEnabledProtocols ( );
public abstract boolean
getEnableSessionCreation ( );
public abstract boolean
getNeedClientAuth ( );
public abstract String[ ]
getSupportedCipherSuites ( );
public abstract String[ ]
getSupportedProtocols ( );
public abstract boolean
getUseClientMode ( );
public abstract boolean
getWantClientAuth ( );
public abstract void
setEnabledCipherSuites (String[ ]
suites );
public abstract void
setEnabledProtocols (String[ ]
protocols );
public abstract void
setEnableSessionCreation (boolean
flag );
public abstract void
setNeedClientAuth (boolean
need );
public abstract void
setUseClientMode (boolean
mode );
public abstract void
setWantClientAuth (boolean
want );
}