- 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
- Author:
- Stephan Sann, Bill Shannon
-
-
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.Socket
createSocket()
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.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.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)
-
-
-
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 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:
createSocket
in classjavax.net.ssl.SSLSocketFactory
- Throws:
java.io.IOException
-
getDefaultCipherSuites
public java.lang.String[] getDefaultCipherSuites()
- Specified by:
getDefaultCipherSuites
in classjavax.net.ssl.SSLSocketFactory
-
getSupportedCipherSuites
public java.lang.String[] getSupportedCipherSuites()
- Specified by:
getSupportedCipherSuites
in classjavax.net.ssl.SSLSocketFactory
-
createSocket
public java.net.Socket createSocket() throws java.io.IOException
- Overrides:
createSocket
in 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:
createSocket
in 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:
createSocket
in 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:
createSocket
in classjavax.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 classjavax.net.SocketFactory
- Throws:
java.io.IOException
java.net.UnknownHostException
-
-