]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/ping/TestSSL.java
Merge "Update notes about password security"
[gigi.git] / tests / org / cacert / gigi / ping / TestSSL.java
index 82d1c820b11eb81cf58e79adcbfb604df4940300..34c8d297a7f829838e6e292ed6b4218f28fbef36 100644 (file)
@@ -6,7 +6,6 @@ import static org.junit.Assume.*;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.net.Socket;
-import java.net.URL;
 import java.net.URLEncoder;
 import java.security.GeneralSecurityException;
 import java.security.KeyManagementException;
@@ -37,12 +36,13 @@ import javax.net.ssl.X509TrustManager;
 import javax.security.auth.x500.X500Principal;
 
 import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.database.DatabaseConnection;
+import org.cacert.gigi.database.DatabaseConnection.Link;
 import org.cacert.gigi.dbObjects.Certificate;
 import org.cacert.gigi.dbObjects.Certificate.CSRType;
 import org.cacert.gigi.dbObjects.CertificateProfile;
 import org.cacert.gigi.dbObjects.Digest;
 import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.pages.account.domain.DomainOverview;
 import org.cacert.gigi.testUtils.IOUtils;
 import org.cacert.gigi.testUtils.PingTest;
 import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail;
@@ -59,9 +59,9 @@ public class TestSSL extends PingTest {
     @Parameters(name = "self-signed = {0}")
     public static Iterable<Object[]> genParams() throws IOException {
         return Arrays.asList(new Object[] {
-            true
+                true
         }, new Object[] {
-            false
+                false
         });
 
     }
@@ -133,6 +133,12 @@ public class TestSSL extends PingTest {
         testEmailAndSSL(1, 1, false);
     }
 
+    private void testEmailAndSSL(int sslVariant, int emailVariant, boolean successMail) throws IOException, InterruptedException, SQLException, GeneralSecurityException, GigiApiException {
+        try (Link link = DatabaseConnection.newLink(false)) {
+            testEmailAndSSLWithLink(sslVariant, emailVariant, successMail);
+        }
+    }
+
     /**
      * @param sslVariant
      *            <ul>
@@ -151,12 +157,10 @@ public class TestSSL extends PingTest {
      * @throws GigiApiException
      */
 
-    private void testEmailAndSSL(int sslVariant, int emailVariant, boolean successMail) throws IOException, InterruptedException, SQLException, GeneralSecurityException, GigiApiException {
+    private void testEmailAndSSLWithLink(int sslVariant, int emailVariant, boolean successMail) throws IOException, InterruptedException, SQLException, GeneralSecurityException, GigiApiException {
         String test = getTestProps().getProperty("domain.local");
         assumeNotNull(test);
-        URL u = new URL("https://" + getServerName() + DomainOverview.PATH);
-
-        Matcher m = initailizeDomainForm(u);
+        Matcher m = initailizeDomainForm();
         String value = m.group(2);
 
         if (self) {
@@ -182,7 +186,7 @@ public class TestSSL extends PingTest {
                 "&ssl-type-2=direct&ssl-port-2=" + //
                 "&ssl-type-3=direct&ssl-port-3=" + //
                 "&adddomain&csrf=" + csrf;
-        URL u2 = sendDomainForm(u, content);
+        String p2 = sendDomainForm(content);
         boolean firstSucceeds = sslVariant != 0 && sslVariant != 2;
         AsyncTask<Boolean> ass = new AsyncTask<Boolean>() {
 
@@ -206,7 +210,7 @@ public class TestSSL extends PingTest {
         }
         waitForPings(3);
 
-        String newcontent = IOUtils.readURL(cookie(u2.openConnection(), cookie));
+        String newcontent = IOUtils.readURL(get(p2));
         Pattern pat = Pattern.compile("<td>ssl</td>\\s*<td>success</td>");
         Matcher matcher = pat.matcher(newcontent);
         assertTrue(newcontent, firstSucceeds ^ matcher.find());
@@ -254,57 +258,57 @@ public class TestSSL extends PingTest {
         try {
             sc = SSLContext.getInstance("SSL");
             sc.init(new KeyManager[] {
-                new X509KeyManager() {
+                    new X509KeyManager() {
+
+                        @Override
+                        public String[] getServerAliases(String keyType, Principal[] issuers) {
+                            return new String[] {
+                                    "server"
+                            };
+                        }
+
+                        @Override
+                        public PrivateKey getPrivateKey(String alias) {
+                            return priv;
+                        }
+
+                        @Override
+                        public String[] getClientAliases(String keyType, Principal[] issuers) {
+                            throw new Error();
+                        }
+
+                        @Override
+                        public X509Certificate[] getCertificateChain(String alias) {
+                            return new X509Certificate[] {
+                                    cert
+                            };
+                        }
+
+                        @Override
+                        public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket socket) {
+                            throw new Error();
+                        }
+
+                        @Override
+                        public String chooseServerAlias(String keyType, Principal[] issuers, Socket socket) {
+                            return "server";
+                        }
 
-                    @Override
-                    public String[] getServerAliases(String keyType, Principal[] issuers) {
-                        return new String[] {
-                            "server"
-                        };
                     }
-
-                    @Override
-                    public PrivateKey getPrivateKey(String alias) {
-                        return priv;
-                    }
-
-                    @Override
-                    public String[] getClientAliases(String keyType, Principal[] issuers) {
-                        throw new Error();
-                    }
-
-                    @Override
-                    public X509Certificate[] getCertificateChain(String alias) {
-                        return new X509Certificate[] {
-                            cert
-                        };
-                    }
-
-                    @Override
-                    public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket socket) {
-                        throw new Error();
-                    }
-
-                    @Override
-                    public String chooseServerAlias(String keyType, Principal[] issuers, Socket socket) {
-                        return "server";
-                    }
-
-                }
             }, new TrustManager[] {
-                new X509TrustManager() {
+                    new X509TrustManager() {
 
-                    @Override
-                    public X509Certificate[] getAcceptedIssuers() {
-                        return null;
-                    }
+                        @Override
+                        public X509Certificate[] getAcceptedIssuers() {
+                            return null;
+                        }
 
-                    @Override
-                    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
+                        @Override
+                        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
 
-                    @Override
-                    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
-                }
+                        @Override
+                        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
+                    }
             }, new SecureRandom());
         } catch (NoSuchAlgorithmException e) {
             e.printStackTrace();