org.apache.http.conn.ssl
Class StrictHostnameVerifier

java.lang.Object
  extended by org.apache.http.conn.ssl.AbstractVerifier
      extended by org.apache.http.conn.ssl.StrictHostnameVerifier
All Implemented Interfaces:
javax.net.ssl.HostnameVerifier

public class StrictHostnameVerifier
extends AbstractVerifier

The Strict HostnameVerifier works the same way as Sun Java 1.4, Sun Java 5, Sun Java 6-rc. It's also pretty close to IE6. This implementation appears to be compliant with RFC 2818 for dealing with wildcards.

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 one divergence from IE6 is how we only check the first CN. IE6 allows a match against any of the CNs present. We decided to follow in Sun Java 1.4's footsteps and only check the first CN. (If you need to check all the CN's, feel free to write your own implementation!).

A wildcard such as "*.foo.com" matches only subdomains in the same level, for example "a.foo.com". It does not match deeper subdomains such as "a.b.foo.com".

Author:
Julius Davies

Constructor Summary
StrictHostnameVerifier()
           
 
Method Summary
 java.lang.String toString()
           
 void verify(java.lang.String host, java.lang.String[] cns, java.lang.String[] subjectAlts)
           
 
Methods inherited from class org.apache.http.conn.ssl.AbstractVerifier
acceptableCountryWildcard, countDots, getCNs, getDNSSubjectAlts, verify, verify, verify, verify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StrictHostnameVerifier

public StrictHostnameVerifier()
Method Detail

verify

public final void verify(java.lang.String host,
                         java.lang.String[] cns,
                         java.lang.String[] subjectAlts)
                  throws javax.net.ssl.SSLException
Throws:
javax.net.ssl.SSLException

toString

public final java.lang.String toString()
Overrides:
toString in class java.lang.Object


Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.