MailSSLSocketFactory (JavaMail API documentation)
Date: 2016-12-03

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 javax.net.ssl.SSLSocketFactory

  An SSL socket factory that makes it easier to specify trust. This socket factory can be configured to trust all hosts 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

    Constructors
    Constructor and Description
    `MailSSLSocketFactory()` Initializes a new MailSSLSocketFactory.
    `MailSSLSocketFactory(java.lang.String protocol)` Initializes a new MailSSLSocketFactory with a given protocol.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.net.Socket` | `createSocket()`
    `java.net.Socket` | `createSocket(java.net.InetAddress inetaddress, int i)`
    `java.net.Socket` | `createSocket(java.net.InetAddress inetaddress, int i, java.net.InetAddress inetaddress1, int j)`
    `java.net.Socket` | `createSocket(java.net.Socket socket, java.lang.String s, int i, boolean flag)`
    `java.net.Socket` | `createSocket(java.lang.String s, int i)`
    `java.net.Socket` | `createSocket(java.lang.String s, int i, java.net.InetAddress inetaddress, int j)`
    `java.lang.String[]` | `getDefaultCipherSuites()`
    `javax.net.ssl.KeyManager[]` | `getKeyManagers()`
    `java.security.SecureRandom` | `getSecureRandom()`
    `java.lang.String[]` | `getSupportedCipherSuites()`
    `java.lang.String[]` | `getTrustedHosts()`
    `javax.net.ssl.TrustManager[]` | `getTrustManagers()`
    `boolean` | `isServerTrusted(java.lang.String server, javax.net.ssl.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(javax.net.ssl.KeyManager[] keyManagers)`
    `void` | `setSecureRandom(java.security.SecureRandom secureRandom)`
    `void` | `setTrustAllHosts(boolean trustAllHosts)`
    `void` | `setTrustedHosts(java.lang.String[] trustedHosts)`
    `void` | `setTrustManagers(javax.net.ssl.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 java.security.GeneralSecurityException

      Initializes a new MailSSLSocketFactory.
      Throws:
        `java.security.GeneralSecurityException` - for security errors

    - #### MailSSLSocketFactory

          public MailSSLSocketFactory(java.lang.String protocol)
                               throws java.security.GeneralSecurityException

      Initializes a new MailSSLSocketFactory with a given protocol. Normally the protocol will be specified as "TLS".
      Parameters:
        `protocol` - The protocol to use
      Throws:
        `java.security.NoSuchAlgorithmException` - if given protocol is not supported
        `java.security.GeneralSecurityException` - for security errors

  - ### Method Detail

    - #### getKeyManagers

          public javax.net.ssl.KeyManager[] getKeyManagers()

      Returns:
        the keyManagers

    - #### setKeyManagers

          public void setKeyManagers(javax.net.ssl.KeyManager[] keyManagers)
                              throws java.security.GeneralSecurityException

      Parameters:
        `keyManagers` - the keyManagers to set
      Throws:
        `java.security.GeneralSecurityException` - for security errors

    - #### getSecureRandom

          public java.security.SecureRandom getSecureRandom()

      Returns:
        the secureRandom

    - #### setSecureRandom

          public void setSecureRandom(java.security.SecureRandom secureRandom)
                               throws java.security.GeneralSecurityException

      Parameters:
        `secureRandom` - the secureRandom to set
      Throws:
        `java.security.GeneralSecurityException` - for security errors

    - #### getTrustManagers

          public javax.net.ssl.TrustManager[] getTrustManagers()

      Returns:
        the trustManagers

    - #### setTrustManagers

          public void setTrustManagers(javax.net.ssl.TrustManager[] trustManagers)
                                throws java.security.GeneralSecurityException

      Parameters:
        `trustManagers` - the trustManagers to set
      Throws:
        `java.security.GeneralSecurityException` - for security errors

    - #### 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 java.lang.String[] getTrustedHosts()

      Returns:
        the trusted hosts

    - #### setTrustedHosts

          public void setTrustedHosts(java.lang.String[] trustedHosts)

      Parameters:
        `trustedHosts` - the hosts to trust

    - #### isServerTrusted

          public boolean isServerTrusted(java.lang.String server,
                                javax.net.ssl.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 java.net.Socket createSocket(java.net.Socket socket,
                                     java.lang.String s,
                                     int i,
                                     boolean flag)
                                       throws java.io.IOException

      Specified by:
        `createSocket` in class `javax.net.ssl.SSLSocketFactory`
      Throws:
        `java.io.IOException`

    - #### getDefaultCipherSuites

          public java.lang.String[] getDefaultCipherSuites()

      Specified by:
        `getDefaultCipherSuites` in class `javax.net.ssl.SSLSocketFactory`

    - #### getSupportedCipherSuites

          public java.lang.String[] getSupportedCipherSuites()

      Specified by:
        `getSupportedCipherSuites` in class `javax.net.ssl.SSLSocketFactory`

    - #### createSocket

          public java.net.Socket createSocket()
                                       throws java.io.IOException

      Overrides:
        `createSocket` in class `javax.net.SocketFactory`
      Throws:
        `java.io.IOException`

    - #### createSocket

          public java.net.Socket createSocket(java.net.InetAddress inetaddress,
                                     int i,
                                     java.net.InetAddress inetaddress1,
                                     int j)
                                       throws java.io.IOException

      Specified by:
        `createSocket` in class `javax.net.SocketFactory`
      Throws:
        `java.io.IOException`

    - #### createSocket

          public java.net.Socket createSocket(java.net.InetAddress inetaddress,
                                     int i)
                                       throws java.io.IOException

      Specified by:
        `createSocket` in class `javax.net.SocketFactory`
      Throws:
        `java.io.IOException`

    - #### createSocket

          public java.net.Socket createSocket(java.lang.String s,
                                     int i,
                                     java.net.InetAddress inetaddress,
                                     int j)
                                       throws java.io.IOException,
                                              java.net.UnknownHostException

      Specified by:
        `createSocket` in class `javax.net.SocketFactory`
      Throws:
        `java.io.IOException`
        `java.net.UnknownHostException`

    - #### createSocket

          public java.net.Socket createSocket(java.lang.String s,
                                     int i)
                                       throws java.io.IOException,
                                              java.net.UnknownHostException

      Specified by:
        `createSocket` in class `javax.net.SocketFactory`
      Throws:
        `java.io.IOException`
        `java.net.UnknownHostException`

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms< /a>.