org.apache.commons.ssl

## Class HostnameVerifier.AbstractVerifier

- java.lang.Object
- - org.apache.commons.ssl.HostnameVerifier.AbstractVerifier

All Implemented Interfaces:
  javax.net.ssl.HostnameVerifier

Enclosing interface:
  HostnameVerifier

    public abstract static class HostnameVerifier.AbstractVerifier
    extends java.lang.Object
    implements HostnameVerifier

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.commons.ssl.HostnameVerifier

`HostnameVerifier.AbstractVerifier`

### Field Summary

Fields
`private static java.lang.String[]` `BAD_COUNTRY_2LDS` This contains a list of 2nd-level domains that aren't allowed to have wildcards when combined with country-codes.
`private static java.lang.String[]` `LOCALHOSTS`

### Fields inherited from interface org.apache.commons.ssl.HostnameVerifier

`ALLOW_ALL, DEFAULT, DEFAULT_AND_LOCALHOST, STRICT, STRICT_IE6`

### Constructor Summary

Constructors
`protected` `HostnameVerifier.AbstractVerifier()`

### Method Summary

Methods
`static boolean` `acceptableCountryWildcard(java.lang.String cn)`
`void` `check(java.lang.String[] host, javax.net.ssl.SSLSocket ssl)`
`void` `check(java.lang.String[] hosts, java.lang.String[] cns, java.lang.String[] subjectAlts, boolean ie6, boolean strictWithSubDomains)`
`void` `check(java.lang.String[] host, java.security.cert.X509Certificate cert)`
`void` `check(java.lang.String host, javax.net.ssl.SSLSocket ssl)`
`void` `check(java.lang.String host, java.lang.String[] cns, java.lang.String[] subjectAlts)`
`void` `check(java.lang.String host, java.security.cert.X509Certificate cert)`
`static int` `countDots(java.lang.String s)` Counts the number of dots "." in a string.
`static boolean` `isIP4Address(java.lang.String cn)`
`static boolean` `isLocalhost(java.lang.String host)`
`boolean` `verify(java.lang.String host, javax.net.ssl.SSLSession session)` The javax.net.ssl.HostnameVerifier contract.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.commons.ssl.HostnameVerifier

`check`

### Field Detail

#### BAD_COUNTRY_2LDS

    private static final java.lang.String[] BAD_COUNTRY_2LDS

This contains a list of 2nd-level domains that aren't allowed to have wildcards when combined with country-codes. For example: [*.co.uk].

The [*.co.uk] problem is an interesting one. Should we just hope that CA's would never foolishly allow such a certificate to happen? Looks like we're the only implementation guarding against this. Firefox, Curl, Sun Java 1.4, 5, 6 don't bother with this check.

#### LOCALHOSTS

    private static final java.lang.String[] LOCALHOSTS

### Constructor Detail

#### HostnameVerifier.AbstractVerifier

    protected HostnameVerifier.AbstractVerifier()

### Method Detail

#### verify

    public boolean verify(java.lang.String host,
                 javax.net.ssl.SSLSession session)

The javax.net.ssl.HostnameVerifier contract.

Specified by:
  `verify` in interface `javax.net.ssl.HostnameVerifier`
Parameters:
  `host` - 'hostname' we used to create our socket
  `session` - SSLSession with the remote server
Returns:
  true if the host matched the one in the certificate.

#### check

    public void check(java.lang.String host,
             javax.net.ssl.SSLSocket ssl)
               throws java.io.IOException

Throws:
  `java.io.IOException`

#### check

    public void check(java.lang.String host,
             java.security.cert.X509Certificate cert)
               throws javax.net.ssl.SSLException

Throws:
  `javax.net.ssl.SSLException`

#### check

    public void check(java.lang.String host,
             java.lang.String[] cns,
             java.lang.String[] subjectAlts)
               throws javax.net.ssl.SSLException

Throws:
  `javax.net.ssl.SSLException`

#### check

    public void check(java.lang.String[] host,
             javax.net.ssl.SSLSocket ssl)
               throws java.io.IOException

Throws:
  `java.io.IOException`

#### check

    public void check(java.lang.String[] host,
             java.security.cert.X509Certificate cert)
               throws javax.net.ssl.SSLException

Throws:
  `javax.net.ssl.SSLException`

#### check

    public void check(java.lang.String[] hosts,
             java.lang.String[] cns,
             java.lang.String[] subjectAlts,
             boolean ie6,
             boolean strictWithSubDomains)
               throws javax.net.ssl.SSLException

Throws:
  `javax.net.ssl.SSLException`

#### isIP4Address

    public static boolean isIP4Address(java.lang.String cn)

#### acceptableCountryWildcard

    public static boolean acceptableCountryWildcard(java.lang.String cn)

#### isLocalhost

    public static boolean isLocalhost(java.lang.String host)

#### countDots

    public static int countDots(java.lang.String s)

Counts the number of dots "." in a string.

Parameters:
  `s` - string to count dots from
Returns:
  number of dots