Class BrowserCompatHostnameVerifier

java.lang.Object
org.apache.http.conn.ssl.AbstractVerifier
org.apache.http.conn.ssl.BrowserCompatHostnameVerifier
All Implemented Interfaces:
HostnameVerifier, X509HostnameVerifier

public class BrowserCompatHostnameVerifier
extends AbstractVerifier
The HostnameVerifier that works the same way as Curl and Firefox.

The hostname must match either the first CN, or any of the subject-alts. A wildcard can occur in the CN, and in any of the subject-alts.

The only difference between BROWSER_COMPATIBLE and STRICT is that a wildcard (such as "*.foo.com") with BROWSER_COMPATIBLE matches all subdomains, including "a.b.foo.com".

Author:
Julius Davies
  • Constructor Details

    • BrowserCompatHostnameVerifier

      public BrowserCompatHostnameVerifier()
  • Method Details

    • verify

      public final void verify​(String host, String[] cns, String[] subjectAlts) throws SSLException
      Description copied from interface: X509HostnameVerifier
      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:
      host - The hostname to verify.
      cns - CN fields, in order, as extracted from the X.509 certificate.
      subjectAlts - Subject-Alt fields of type 2 ("DNS"), as extracted from the X.509 certificate.
      Throws:
      SSLException - If verification failed.
    • toString

      public final String toString()
      Description copied from class: Object
      Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:
         getClass().getName() + '@' + Integer.toHexString(hashCode())

      See Writing a useful toString method if you intend implementing your own toString method.

      Overrides:
      toString in class Object
      Returns:
      a printable representation of this object.