public final class ConnectionSpec extends Object
https: URLs, this includes the TLS version and cipher suites to use when negotiating a secure connection.
The TLS versions configured in a connection spec are only be used if they are also enabled in the SSL socket. For example, if an SSL socket does not have TLS 1.2 enabled, it will not be used even if it is present on the connection spec. The same policy also applies to cipher suites.
Use ConnectionSpec and ConnectionSpec to defer all feature selection to the underlying SSL socket.
| Modifier and Type | Class and Description |
|---|---|
static class |
ConnectionSpec
|
| Modifier and Type | Field and Description |
|---|---|
static ConnectionSpec |
CLEARTEXT
Unencrypted, unauthenticated connections for
http: URLs.
|
static ConnectionSpec |
COMPATIBLE_TLS
A backwards-compatible fallback connection for interop with obsolete servers.
|
static ConnectionSpec |
MODERN_TLS
A modern TLS connection with extensions like SNI and ALPN available.
|
| Modifier and Type | Method and Description |
|---|---|
List |
cipherSuites()
Returns the cipher suites to use for a connection.
|
boolean |
equals(Object
|
int |
hashCode()
|
boolean |
isCompatible(SSLSocket
Returns
true if the socket, as currently configured, supports this connection spec.
|
boolean |
isTls()
|
boolean |
supportsTlsExtensions()
|
List |
tlsVersions()
Returns the TLS versions to use when negotiating a connection.
|
String |
toString()
|
public static final ConnectionSpecMODERN_TLS
public static final ConnectionSpecCOMPATIBLE_TLS
public static final ConnectionSpecCLEARTEXT
http: URLs.
public boolean isTls()
public List<CipherSuite > cipherSuites()
null if all of the SSL socket's enabled cipher suites should be used.
public List<TlsVersion > tlsVersions()
null if all of the SSL socket's enabled TLS versions should be used.
public boolean supportsTlsExtensions()
public boolean isCompatible(SSLSocketsocket)
true if the socket, as currently configured, supports this connection spec. In order for a socket to be compatible the enabled cipher suites and protocols must intersect.
For cipher suites, at least one of the required cipher suites must match the socket's enabled cipher suites. If there are no required cipher suites the socket must have at least one cipher suite enabled.
For protocols, at least one of the required protocols must match the socket's enabled protocols.
public boolean equals(Objectother)
public int hashCode()
public StringtoString()