com.sun.mail.util
Class MailSSLSocketFactory

java.lang.Object
  extended by javax.net.SocketFactory
      extended by javax.net.ssl.SSLSocketFactory
          extended by 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 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 © 2011 Oracle. All Rights Reserved.