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 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 Description MailSSLSocketFactory()
Initializes a new MailSSLSocketFactory.MailSSLSocketFactory(String protocol)
Initializes a new MailSSLSocketFactory with a given protocol.
-
Method Summary
-
Methods inherited from class javax.net.ssl.SSLSocketFactory
createSocket, getDefault
-
-
-
-
Constructor Detail
-
MailSSLSocketFactory
public MailSSLSocketFactory() throws GeneralSecurityException
Initializes a new MailSSLSocketFactory.- Throws:
GeneralSecurityException
- for security errors
-
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 supportedGeneralSecurityException
- for security errors
-
-
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
- for security errors
-
getSecureRandom
public SecureRandom getSecureRandom()
- Returns:
- the secureRandom
-
setSecureRandom
public void setSecureRandom(SecureRandom secureRandom) throws GeneralSecurityException
- Parameters:
secureRandom
- the secureRandom to set- Throws:
GeneralSecurityException
- for security errors
-
getTrustManagers
public TrustManager[] getTrustManagers()
- Returns:
- the trustManagers
-
setTrustManagers
public void setTrustManagers(TrustManager[] trustManagers) throws GeneralSecurityException
- Parameters:
trustManagers
- the trustManagers to set- Throws:
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 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 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 Socket createSocket(Socket socket, String s, int i, boolean flag) throws IOException
- Specified by:
createSocket
in classSSLSocketFactory
- Throws:
IOException
-
getDefaultCipherSuites
public String[] getDefaultCipherSuites()
- Specified by:
getDefaultCipherSuites
in classSSLSocketFactory
-
getSupportedCipherSuites
public String[] getSupportedCipherSuites()
- Specified by:
getSupportedCipherSuites
in classSSLSocketFactory
-
createSocket
public Socket createSocket() throws IOException
- Overrides:
createSocket
in classSocketFactory
- Throws:
IOException
-
createSocket
public Socket createSocket(InetAddress inetaddress, int i, InetAddress inetaddress1, int j) throws IOException
- Specified by:
createSocket
in classSocketFactory
- Throws:
IOException
-
createSocket
public Socket createSocket(InetAddress inetaddress, int i) throws IOException
- Specified by:
createSocket
in classSocketFactory
- Throws:
IOException
-
createSocket
public Socket createSocket(String s, int i, InetAddress inetaddress, int j) throws IOException, UnknownHostException
- Specified by:
createSocket
in classSocketFactory
- Throws:
IOException
UnknownHostException
-
createSocket
public Socket createSocket(String s, int i) throws IOException, UnknownHostException
- Specified by:
createSocket
in classSocketFactory
- Throws:
IOException
UnknownHostException
-
-