2002/css-validator/org/w3c/css/css DocumentParser.java,1.4,1.5

Update of /sources/public/2002/css-validator/org/w3c/css/css
In directory hutz:/tmp/cvs-serv22076/org/w3c/css/css

Modified Files:
	DocumentParser.java 
Log Message:
Contributed by Vajna Miklos, see http://lists.w3.org/Archives/Public/www-validator-css/2010Jun/0000.html - SSL Host verifier fix

Index: DocumentParser.java
===================================================================
RCS file: /sources/public/2002/css-validator/org/w3c/css/css/DocumentParser.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- DocumentParser.java	18 Feb 2010 18:02:48 -0000	1.4
+++ DocumentParser.java	18 Jun 2010 16:18:10 -0000	1.5
@@ -17,6 +17,13 @@
 import java.net.URL;
 import java.net.URLConnection;
 
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.SSLSession;
+
 /**
  * @version $Revision$
  */
@@ -77,6 +84,40 @@
 	} else {
 	    URLConnection connection = null;
 
+	    if ("https".equals(urlProtocol)) {
+		    // Step 1: trust manager
+		    // Create a trust manager that does not validate certificate chains
+		    TrustManager[] trustAllCerts = new TrustManager[] {
+			    new X509TrustManager() {
+				    public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+					    return null;
+				    }
+				    public void checkClientTrusted(
+					    java.security.cert.X509Certificate[] certs, String authType) {
+				    }
+				    public void checkServerTrusted(
+						    java.security.cert.X509Certificate[] certs, String authType) {
+					    }
+			    }
+		    };
+
+		    // Install the all-trusting trust manager
+		    try {
+			    SSLContext sc = SSLContext.getInstance("SSL");
+			    sc.init(null, trustAllCerts, new java.security.SecureRandom());
+			    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+		    } catch (Exception e) {
+		    }
+
+		    // Step 2: hostname verifier
+		    HostnameVerifier hv = new HostnameVerifier() {
+			    public boolean verify(String urlHostName, SSLSession session) {
+				    return true;
+			    }
+		    };
+		    HttpsURLConnection.setDefaultHostnameVerifier(hv);
+	    }
+
 	    try {
 		boolean isXML = false;
 		String cType;

Received on Friday, 18 June 2010 16:18:15 UTC