## com.sun.mail.util
Class MailSSLSocketFactory

    java.lang.Object
      javax.net.SocketFactory
          javax.net.ssl.SSLSocketFactory
              com.sun.mail.util.MailSSLSocketFactory

    public class MailSSLSocketFactory

extends SSLSocketFactory

An SSL socket factory that makes it easier to specify trust. This socket factory can be configured to trust all hosts or or trust a specific set of hosts, in which case the server's certificate isn't verified. Alternatively, a custom TrustManager can be supplied. An instance of this factory can be set as the value of the `mail.<protocol>.ssl.socketFactory` property.

Since:
  JavaMail 1.4.2

Constructor Summary
`MailSSLSocketFactory()` Initializes a new MailSSLSocketFactory.
`MailSSLSocketFactory(String protocol)` Initializes a new MailSSLSocketFactory with a given protocol.

Method Summary
`Socket` `createSocket()`
`Socket` `createSocket(InetAddress inetaddress, int i)`
`Socket` `createSocket(InetAddress inetaddress, int i, InetAddress inetaddress1, int j)`
`Socket` `createSocket(Socket socket, String s, int i, boolean flag)`
`Socket` `createSocket(String s, int i)`
`Socket` `createSocket(String s, int i, InetAddress inetaddress, int j)`
`String[]` `getDefaultCipherSuites()`
`KeyManager[]` `getKeyManagers()`
`SecureRandom` `getSecureRandom()`
`String[]` `getSupportedCipherSuites()`
`String[]` `getTrustedHosts()`
`TrustManager[]` `getTrustManagers()`
`boolean` `isServerTrusted(String server, SSLSocket sslSocket)` After a successful conection to the server, this method is called to ensure that the server should be trusted.
`boolean` `isTrustAllHosts()`
`void` `setKeyManagers(KeyManager[] keyManagers)`
`void` `setSecureRandom(SecureRandom secureRandom)`
`void` `setTrustAllHosts(boolean trustAllHosts)`
`void` `setTrustedHosts(String[] trustedHosts)`
`void` `setTrustManagers(TrustManager[] trustManagers)`

Methods inherited from class javax.net.ssl.SSLSocketFactory
`getDefault`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MailSSLSocketFactory

    public MailSSLSocketFactory()
                         throws GeneralSecurityException

  Initializes a new MailSSLSocketFactory.

  Throws:
    `GeneralSecurityException`

### MailSSLSocketFactory

    public MailSSLSocketFactory(String protocol)
                         throws GeneralSecurityException

  Initializes a new MailSSLSocketFactory with a given protocol. Normally the protocol will be specified as "TLS".

  Parameters:
    `protocol` - The protocol to use
  Throws:
    `NoSuchAlgorithmException` - if given protocol is not supported
    `GeneralSecurityException`

Method Detail

### getKeyManagers

    public KeyManager[] getKeyManagers()

  Returns:
    the keyManagers

### setKeyManagers

    public void setKeyManagers(KeyManager[] keyManagers)
                        throws GeneralSecurityException

  Parameters:
    `keyManagers` - the keyManagers to set
  Throws:
    `GeneralSecurityException`

### getSecureRandom

    public SecureRandom getSecureRandom()

  Returns:
    the secureRandom

### setSecureRandom

    public void setSecureRandom(SecureRandom secureRandom)
                         throws GeneralSecurityException

  Parameters:
    `secureRandom` - the secureRandom to set
  Throws:
    `GeneralSecurityException`

### getTrustManagers

    public TrustManager[] getTrustManagers()

  Returns:
    the trustManagers

### setTrustManagers

    public void setTrustManagers(TrustManager[] trustManagers)
                          throws GeneralSecurityException

  Parameters:
    `trustManagers` - the trustManagers to set
  Throws:
    `GeneralSecurityException`

### isTrustAllHosts

    public boolean isTrustAllHosts()

  Returns:
    true if all hosts should be trusted

### setTrustAllHosts

    public void setTrustAllHosts(boolean trustAllHosts)

  Parameters:
    `trustAllHosts` - should all hosts be trusted?

### getTrustedHosts

    public String[] getTrustedHosts()

  Returns:
    the trusted hosts

### setTrustedHosts

    public void setTrustedHosts(String[] trustedHosts)

  Parameters:
    `trustedHosts` - the hosts to trust

### isServerTrusted

    public boolean isServerTrusted(String server,
                                   SSLSocket sslSocket)

  After a successful conection to the server, this method is called to ensure that the server should be trusted.

  Parameters:
    `server` - name of the server we connected to
    `sslSocket` - SSLSocket connected to the server
  Returns:
    true if "trustAllHosts" is set to true OR the server is contained in the "trustedHosts" array;

### createSocket

    public Socket createSocket(Socket socket,
                               String s,
                               int i,
                               boolean flag)
                        throws IOException

  Specified by:
    `createSocket` in class `SSLSocketFactory`
  Throws:
    `IOException`

### getDefaultCipherSuites

    public String[] getDefaultCipherSuites()

  Specified by:
    `getDefaultCipherSuites` in class `SSLSocketFactory`

### getSupportedCipherSuites

    public String[] getSupportedCipherSuites()

  Specified by:
    `getSupportedCipherSuites` in class `SSLSocketFactory`

### createSocket

    public Socket createSocket()
                        throws IOException

  Overrides:
    `createSocket` in class `SocketFactory`
  Throws:
    `IOException`

### createSocket

    public Socket createSocket(InetAddress inetaddress,
                               int i,
                               InetAddress inetaddress1,
                               int j)
                        throws IOException

  Specified by:
    `createSocket` in class `SocketFactory`
  Throws:
    `IOException`

### createSocket

    public Socket createSocket(InetAddress inetaddress,
                               int i)
                        throws IOException

  Specified by:
    `createSocket` in class `SocketFactory`
  Throws:
    `IOException`

### createSocket

    public Socket createSocket(String s,
                               int i,
                               InetAddress inetaddress,
                               int j)
                        throws IOException,
                               UnknownHostException

  Specified by:
    `createSocket` in class `SocketFactory`
  Throws:
    `IOException`
    `UnknownHostException`

### createSocket

    public Socket createSocket(String s,
                               int i)
                        throws IOException,
                               UnknownHostException

  Specified by:
    `createSocket` in class `SocketFactory`
  Throws:
    `IOException`
    `UnknownHostException`

Copyright © 2009 Sun Microsystems, Inc.. All Rights Reserved.