Package 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.SSLSocketFactoryAn 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.socketFactoryproperty.- Since:
- JavaMail 1.4.2
-
-
Constructor Summary
Constructors Constructor Description MailSSLSocketFactory()Initializes a new MailSSLSocketFactory.MailSSLSocketFactory(java.lang.String protocol)Initializes a new MailSSLSocketFactory with a given protocol.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.net.SocketcreateSocket()java.net.SocketcreateSocket(java.lang.String s, int i)java.net.SocketcreateSocket(java.lang.String s, int i, java.net.InetAddress inetaddress, int j)java.net.SocketcreateSocket(java.net.InetAddress inetaddress, int i)java.net.SocketcreateSocket(java.net.InetAddress inetaddress, int i, java.net.InetAddress inetaddress1, int j)java.net.SocketcreateSocket(java.net.Socket socket, java.lang.String s, int i, boolean flag)java.lang.String[]getDefaultCipherSuites()javax.net.ssl.KeyManager[]getKeyManagers()java.security.SecureRandomgetSecureRandom()java.lang.String[]getSupportedCipherSuites()java.lang.String[]getTrustedHosts()javax.net.ssl.TrustManager[]getTrustManagers()booleanisServerTrusted(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.booleanisTrustAllHosts()voidsetKeyManagers(javax.net.ssl.KeyManager[] keyManagers)voidsetSecureRandom(java.security.SecureRandom secureRandom)voidsetTrustAllHosts(boolean trustAllHosts)voidsetTrustedHosts(java.lang.String[] trustedHosts)voidsetTrustManagers(javax.net.ssl.TrustManager[] trustManagers)
-
-
-
Constructor Detail
-
MailSSLSocketFactory
public MailSSLSocketFactory() throws java.security.GeneralSecurityExceptionInitializes a new MailSSLSocketFactory.- Throws:
java.security.GeneralSecurityException- for security errors
-
MailSSLSocketFactory
public MailSSLSocketFactory(java.lang.String protocol) throws java.security.GeneralSecurityExceptionInitializes 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 supportedjava.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 tosslSocket- 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:
createSocketin classjavax.net.ssl.SSLSocketFactory- Throws:
java.io.IOException
-
getDefaultCipherSuites
public java.lang.String[] getDefaultCipherSuites()
- Specified by:
getDefaultCipherSuitesin classjavax.net.ssl.SSLSocketFactory
-
getSupportedCipherSuites
public java.lang.String[] getSupportedCipherSuites()
- Specified by:
getSupportedCipherSuitesin classjavax.net.ssl.SSLSocketFactory
-
createSocket
public java.net.Socket createSocket() throws java.io.IOException- Overrides:
createSocketin classjavax.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:
createSocketin classjavax.net.SocketFactory- Throws:
java.io.IOException
-
createSocket
public java.net.Socket createSocket(java.net.InetAddress inetaddress, int i) throws java.io.IOException- Specified by:
createSocketin classjavax.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:
createSocketin classjavax.net.SocketFactory- Throws:
java.io.IOExceptionjava.net.UnknownHostException
-
createSocket
public java.net.Socket createSocket(java.lang.String s, int i) throws java.io.IOException, java.net.UnknownHostException- Specified by:
createSocketin classjavax.net.SocketFactory- Throws:
java.io.IOExceptionjava.net.UnknownHostException
-
-