org.w3c.mwi.mobileok.basic
Class HostnameVerifier.AbstractVerifier
java.lang.Object
org.w3c.mwi.mobileok.basic.HostnameVerifier.AbstractVerifier
- All Implemented Interfaces:
- javax.net.ssl.HostnameVerifier
- Enclosing interface:
- HostnameVerifier
public abstract static class HostnameVerifier.AbstractVerifier
- extends java.lang.Object
- implements HostnameVerifier
Field Summary |
private static java.lang.String[] |
BAD_COUNTRY_2LDS
This contains a list of 2nd-level domains that are not allowed to
have wildcards when combined with country-codes. |
private static java.lang.String[] |
LOCALHOSTS
|
Method Summary |
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. |
java.lang.String[] |
getCertificateCNs(java.security.cert.X509Certificate cert)
|
java.lang.String[] |
getCertificateDNSSubjectAlts(java.security.cert.X509Certificate cert)
Extracts the array of SubjectAlt DNS names from an X509Certificate. |
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 |
BAD_COUNTRY_2LDS
private static final java.lang.String[] BAD_COUNTRY_2LDS
- This contains a list of 2nd-level domains that are not 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
HostnameVerifier.AbstractVerifier
protected HostnameVerifier.AbstractVerifier()
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 socketsession
- 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
getCertificateCNs
public java.lang.String[] getCertificateCNs(java.security.cert.X509Certificate cert)
getCertificateDNSSubjectAlts
public java.lang.String[] getCertificateDNSSubjectAlts(java.security.cert.X509Certificate cert)
- Extracts the array of SubjectAlt DNS names from an X509Certificate.
- Parameters:
cert
- X509Certificate to parse
- Returns:
- Array of SubjectALT DNS names stored in the certificate.
Returns null if there aren't any.