Added in API level 1
Deprecated in API level 22

X509HostnameVerifier

interface X509HostnameVerifier : HostnameVerifier
org.apache.http.conn.ssl.X509HostnameVerifier

Interface for checking if a hostname matches the names stored inside the server's X.509 certificate. Implements javax.net.ssl.HostnameVerifier, but we don't actually use that interface. Instead we added some methods that take String parameters (instead of javax.net.ssl.HostnameVerifier's SSLSession). JUnit is a lot easier this way! :-)

We provide the HostnameVerifier.DEFAULT, HostnameVerifier.STRICT, and HostnameVerifier.ALLOW_ALL implementations. But feel free to define your own implementation!

Inspired by Sebastian Hauer's original StrictSSLProtocolSocketFactory in the HttpClient "contrib" repository.

Summary

Public methods
abstract Boolean
verify(host: String!, session: SSLSession!)

abstract Unit
verify(host: String!, ssl: SSLSocket!)

abstract Unit
verify(host: String!, cert: X509Certificate!)

abstract Unit
verify(host: String!, cns: Array<String!>!, subjectAlts: Array<String!>!)

Checks to see if the supplied hostname matches any of the supplied CNs or "DNS" Subject-Alts.

Public methods

verify

Added in API level 1
abstract fun verify(
    host: String!,
    session: SSLSession!
): Boolean

Deprecated: Deprecated in Java.

Parameters
hostname the host name
session SSLSession!: SSLSession used on the connection to host
Return
Boolean true if the host name is acceptable

verify

Added in API level 1
abstract fun verify(
    host: String!,
    ssl: SSLSocket!
): Unit

Deprecated: Deprecated in Java.

verify

Added in API level 1
abstract fun verify(
    host: String!,
    cert: X509Certificate!
): Unit

Deprecated: Deprecated in Java.

verify

Added in API level 1
abstract fun verify(
    host: String!,
    cns: Array<String!>!,
    subjectAlts: Array<String!>!
): Unit

Deprecated: Deprecated in Java.

Checks to see if the supplied hostname matches any of the supplied CNs or "DNS" Subject-Alts. Most implementations only look at the first CN, and ignore any additional CNs. Most implementations do look at all of the "DNS" Subject-Alts. The CNs or Subject-Alts may contain wildcards according to RFC 2818.

Parameters
cns Array<String!>!: CN fields, in order, as extracted from the X.509 certificate.
subjectAlts Array<String!>!: Subject-Alt fields of type 2 ("DNS"), as extracted from the X.509 certificate.
host String!: The hostname to verify.
Exceptions
javax.net.ssl.SSLException If verification failed.