JavaTM 2 Platform
Standard Ed. 5.0

javax.net.ssl
Class SSLSocketFactory

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

public abstract class SSLSocketFactory
extends SocketFactory

SSLSocketFactorys create SSLSockets.

Since:
1.4
See Also:
SSLSocket

Constructor Summary
SSLSocketFactory()
          Constructor is used only by subclasses.
 
Method Summary
abstract  Socket createSocket(Socket s, String host, int port, boolean autoClose)
          Returns a socket layered over an existing socket connected to the named host, at the given port.
static SocketFactory getDefault()
          Returns the default SSL socket factory.
abstract  String[] getDefaultCipherSuites()
          Returns the list of cipher suites which are enabled by default.
abstract  String[] getSupportedCipherSuites()
          Returns the names of the cipher suites which could be enabled for use on an SSL connection.
 
Methods inherited from class javax.net.SocketFactory
createSocket, createSocket, createSocket, createSocket, createSocket
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SSLSocketFactory

public SSLSocketFactory()
Constructor is used only by subclasses.

Method Detail

getDefault

public static SocketFactory getDefault()
Returns the default SSL socket factory. The default implementation can be changed by setting the value of the "ssl.SocketFactory.provider" security property (in the Java security properties file) to the desired class.

If SSL has not been configured properly for this virtual machine, the factory will be inoperative (reporting instantiation exceptions).

Returns:
the default SocketFactory

getDefaultCipherSuites

public abstract String[] getDefaultCipherSuites()
Returns the list of cipher suites which are enabled by default. Unless a different list is enabled, handshaking on an SSL connection will use one of these cipher suites. The minimum quality of service for these defaults requires confidentiality protection and server authentication (that is, no anonymous cipher suites).

Returns:
array of the cipher suites enabled by default
See Also:
getSupportedCipherSuites()

getSupportedCipherSuites

public abstract String[] getSupportedCipherSuites()
Returns the names of the cipher suites which could be enabled for use on an SSL connection. Normally, only a subset of these will actually be enabled by default, since this list may include cipher suites which do not meet quality of service requirements for those defaults. Such cipher suites are useful in specialized applications.

Returns:
an array of cipher suite names
See Also:
getDefaultCipherSuites()

createSocket

public abstract Socket createSocket(Socket s,
                                    String host,
                                    int port,
                                    boolean autoClose)
                             throws IOException
Returns a socket layered over an existing socket connected to the named host, at the given port. This constructor can be used when tunneling SSL through a proxy or when negotiating the use of SSL over an existing socket. The host and port refer to the logical peer destination. This socket is configured using the socket options established for this factory.

Parameters:
s - the existing socket
host - the server host
port - the server port
autoClose - close the underlying socket when this socket is closed
Returns:
a socket connected to the specified host and port
Throws:
IOException - if an I/O error occurs when creating the socket
UnknownHostException - if the host is not known

JavaTM 2 Platform
Standard Ed. 5.0

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.