Java™ Platform
Standard Ed. 6

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 first time this method is called, the security property "ssl.SocketFactory.provider" is examined. If it is non-null, a class by that name is loaded and instantiated. If that is successful and the object is an instance of SSLSocketFactory, it is made the default SSL socket factory.

Otherwise, this method returns SSLContext.getDefault().getSocketFactory(). If that call fails, an inoperative factory is returned.

Returns:
the default SocketFactory
See Also:
SSLContext.getDefault()

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

Java™ Platform
Standard Ed. 6

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

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