public class IMAPSClient extends IMAPClient
setHostnameVerifier(HostnameVerifier) or setEndpointCheckingEnabled(boolean)
(on Java 1.7+) to enable verification.IMAPClient.FETCH_ITEM_NAMES, IMAPClient.SEARCH_CRITERIA, IMAPClient.STATUS_DATA_ITEMSIMAP.IMAPChunkListener, IMAP.IMAPState| Modifier and Type | Field and Description |
|---|---|
private javax.net.ssl.SSLContext |
context
The context object.
|
static int |
DEFAULT_IMAPS_PORT
The default IMAP over SSL port.
|
static java.lang.String |
DEFAULT_PROTOCOL
Default secure socket protocol name.
|
private javax.net.ssl.HostnameVerifier |
hostnameVerifier
The
HostnameVerifier to use post-TLS, default null (i.e. |
private boolean |
isImplicit
The security mode.
|
private javax.net.ssl.KeyManager |
keyManager
The
KeyManager, default null. |
private java.lang.String |
protocol
The secure socket protocol to be used, like SSL/TLS.
|
private java.lang.String[] |
protocols
The protocol versions.
|
private java.lang.String[] |
suites
The cipher suites.
|
private boolean |
tlsEndpointChecking
Use Java 1.7+ HTTPS Endpoint Identification Algorithim.
|
private javax.net.ssl.TrustManager |
trustManager
The IMAPS
TrustManager implementation, default null. |
__DEFAULT_ENCODING, __writer, _reader, DEFAULT_PORT, TRUE_CHUNK_LISTENER_defaultPort_, _hostname_, _input_, _output_, _serverSocketFactory_, _socket_, _socketFactory_, _timeout_, connectTimeout, NETASCII_EOL| Constructor and Description |
|---|
IMAPSClient()
Constructor for IMAPSClient.
|
IMAPSClient(boolean implicit)
Constructor for IMAPSClient.
|
IMAPSClient(boolean implicit,
javax.net.ssl.SSLContext ctx)
Constructor for IMAPSClient.
|
IMAPSClient(javax.net.ssl.SSLContext context)
Constructor for IMAPSClient.
|
IMAPSClient(java.lang.String proto)
Constructor for IMAPSClient.
|
IMAPSClient(java.lang.String proto,
boolean implicit)
Constructor for IMAPSClient.
|
IMAPSClient(java.lang.String proto,
boolean implicit,
javax.net.ssl.SSLContext ctx)
Constructor for IMAPSClient.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
_connectAction_()
Because there are so many connect() methods,
the _connectAction_() method is provided as a means of performing
some action immediately after establishing a connection,
rather than reimplementing all of the connect() methods.
|
boolean |
execTLS()
The TLS command execution.
|
java.lang.String[] |
getEnabledCipherSuites()
Returns the names of the cipher suites which could be enabled
for use on this connection.
|
java.lang.String[] |
getEnabledProtocols()
Returns the names of the protocol versions which are currently
enabled for use on this connection.
|
javax.net.ssl.HostnameVerifier |
getHostnameVerifier()
Get the currently configured
HostnameVerifier. |
private javax.net.ssl.KeyManager |
getKeyManager()
Get the
KeyManager instance. |
javax.net.ssl.TrustManager |
getTrustManager()
Get the currently configured
TrustManager. |
private void |
initSSLContext()
Performs a lazy init of the SSL context.
|
boolean |
isEndpointCheckingEnabled()
Return whether or not endpoint identification using the HTTPS algorithm
on Java 1.7+ is enabled.
|
private void |
performSSLNegotiation()
SSL/TLS negotiation.
|
void |
setEnabledCipherSuites(java.lang.String[] cipherSuites)
Controls which particular cipher suites are enabled for use on this
connection.
|
void |
setEnabledProtocols(java.lang.String[] protocolVersions)
Controls which particular protocol versions are enabled for use on this
connection.
|
void |
setEndpointCheckingEnabled(boolean enable)
Automatic endpoint identification checking using the HTTPS algorithm
is supported on Java 1.7+.
|
void |
setHostnameVerifier(javax.net.ssl.HostnameVerifier newHostnameVerifier)
Override the default
HostnameVerifier to use. |
void |
setKeyManager(javax.net.ssl.KeyManager newKeyManager)
Set a
KeyManager to use. |
void |
setTrustManager(javax.net.ssl.TrustManager newTrustManager)
Override the default
TrustManager to use. |
append, append, append, capability, check, close, copy, create, delete, examine, expunge, fetch, list, login, logout, lsub, noop, rename, search, search, select, status, store, subscribe, uid, unsubscribedisconnect, doCommand, doCommand, fireReplyReceived, generateCommandID, getReplyString, getReplyStrings, getState, sendCommand, sendCommand, sendCommand, sendCommand, sendData, setChunkListener, setStateaddProtocolCommandListener, connect, connect, connect, connect, connect, connect, createCommandSupport, fireCommandSent, getCharset, getCharsetName, getCommandSupport, getConnectTimeout, getDefaultPort, getDefaultTimeout, getKeepAlive, getLocalAddress, getLocalPort, getProxy, getReceiveBufferSize, getRemoteAddress, getRemotePort, getSendBufferSize, getServerSocketFactory, getSoLinger, getSoTimeout, getTcpNoDelay, isAvailable, isConnected, removeProtocolCommandListener, setCharset, setConnectTimeout, setDefaultPort, setDefaultTimeout, setKeepAlive, setProxy, setReceiveBufferSize, setSendBufferSize, setServerSocketFactory, setSocketFactory, setSoLinger, setSoTimeout, setTcpNoDelay, verifyRemotepublic static final int DEFAULT_IMAPS_PORT
public static final java.lang.String DEFAULT_PROTOCOL
private final boolean isImplicit
private final java.lang.String protocol
private javax.net.ssl.SSLContext context
private java.lang.String[] suites
private java.lang.String[] protocols
private javax.net.ssl.TrustManager trustManager
TrustManager implementation, default null.private javax.net.ssl.KeyManager keyManager
KeyManager, default null.private javax.net.ssl.HostnameVerifier hostnameVerifier
HostnameVerifier to use post-TLS, default null (i.e. no verification).private boolean tlsEndpointChecking
public IMAPSClient()
public IMAPSClient(boolean implicit)
implicit - The security mode (Implicit/Explicit).public IMAPSClient(java.lang.String proto)
proto - the protocol.public IMAPSClient(java.lang.String proto,
boolean implicit)
proto - the protocol.implicit - The security mode(Implicit/Explicit).public IMAPSClient(java.lang.String proto,
boolean implicit,
javax.net.ssl.SSLContext ctx)
proto - the protocol.implicit - The security mode(Implicit/Explicit).ctx - the SSL contextpublic IMAPSClient(boolean implicit,
javax.net.ssl.SSLContext ctx)
implicit - The security mode(Implicit/Explicit).ctx - A pre-configured SSL Context.public IMAPSClient(javax.net.ssl.SSLContext context)
context - A pre-configured SSL Context.protected void _connectAction_()
throws java.io.IOException
_connectAction_ in class IMAPjava.io.IOException - If it is thrown by _connectAction_().SocketClient._connectAction_()private void initSSLContext()
throws java.io.IOException
java.io.IOException - When could not initialize the SSL context.private void performSSLNegotiation()
throws java.io.IOException
java.io.IOException - If server negotiation fails.private javax.net.ssl.KeyManager getKeyManager()
KeyManager instance.KeyManager instance.public void setKeyManager(javax.net.ssl.KeyManager newKeyManager)
KeyManager to use.newKeyManager - The KeyManager implementation to set.KeyManagerUtilspublic void setEnabledCipherSuites(java.lang.String[] cipherSuites)
cipherSuites - The cipher suites.public java.lang.String[] getEnabledCipherSuites()
Socket is not an SSLSocket instance, returns null.null.public void setEnabledProtocols(java.lang.String[] protocolVersions)
protocolVersions - The protocol versions.public java.lang.String[] getEnabledProtocols()
Socket is not an SSLSocket instance, returns null.null.public boolean execTLS()
throws javax.net.ssl.SSLException,
java.io.IOException
javax.net.ssl.SSLException - If the server reply code is not positive.java.io.IOException - If an I/O error occurs while sending
the command or performing the negotiation.public javax.net.ssl.TrustManager getTrustManager()
TrustManager.public void setTrustManager(javax.net.ssl.TrustManager newTrustManager)
TrustManager to use.newTrustManager - The TrustManager implementation to set.TrustManagerUtilspublic javax.net.ssl.HostnameVerifier getHostnameVerifier()
HostnameVerifier.public void setHostnameVerifier(javax.net.ssl.HostnameVerifier newHostnameVerifier)
HostnameVerifier to use.newHostnameVerifier - The HostnameVerifier implementation to set or null to disable.public boolean isEndpointCheckingEnabled()
public void setEndpointCheckingEnabled(boolean enable)
enable - Enable automatic endpoint identification checking using the HTTPS algorithm on Java 1.7+.