Author: rjung
Date: Sun Aug 13 14:37:06 2017
New Revision: 1804917

URL: http://svn.apache.org/viewvc?rev=1804917&view=rev
Log:
Improve some existing test cases with a check,
whether client certificates from the right CA
was demanded during the TLS handshake.

Especially detect, if no CA was announced during
the handshake.

Modified:
    tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java
    tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java
    tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java

Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java?rev=1804917&r1=1804916&r2=1804917&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java Sun Aug 13 
14:37:06 2017
@@ -19,6 +19,7 @@ package org.apache.tomcat.util.net;
 import java.util.Arrays;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import org.junit.Assume;
 import org.junit.Test;
@@ -62,6 +63,18 @@ public class TestClientCert extends Tomc
         // Unprotected resource
         ByteChunk res =
                 getUrl("https://localhost:"; + getPort() + "/unprotected");
+
+        if (log.isDebugEnabled()) {
+            int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
+            log.debug("Last client KeyManager usage: " + 
TesterSupport.getLastClientAuthKeyManagerUsage() +
+                      ", " + count + " requested Issuers, first one: " +
+                      (count > 0 ? 
TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE"));
+            log.debug("Expected requested Issuer: " + 
TesterSupport.getClientAuthExpectedIssuer());
+        }
+        assertTrue("Checking requested client issuer against " +
+                   TesterSupport.getClientAuthExpectedIssuer(),
+                   TesterSupport.checkLastClientAuthRequestedIssuers());
+
         if (preemptive) {
             assertEquals("OK-" + TesterSupport.ROLE, res.toString());
         } else {
@@ -70,6 +83,18 @@ public class TestClientCert extends Tomc
 
         // Protected resource
         res = getUrl("https://localhost:"; + getPort() + "/protected");
+
+        if (log.isDebugEnabled()) {
+            int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
+            log.debug("Last client KeyManager usage: " + 
TesterSupport.getLastClientAuthKeyManagerUsage() +
+                      ", " + count + " requested Issuers, first one: " +
+                      (count > 0 ? 
TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE"));
+            log.debug("Expected requested Issuer: " + 
TesterSupport.getClientAuthExpectedIssuer());
+        }
+        assertTrue("Checking requested client issuer against " +
+                   TesterSupport.getClientAuthExpectedIssuer(),
+                   TesterSupport.checkLastClientAuthRequestedIssuers());
+
         assertEquals("OK-" + TesterSupport.ROLE, res.toString());
     }
 
@@ -107,12 +132,36 @@ public class TestClientCert extends Tomc
         // Unprotected resource
         ByteChunk res = postUrl(body,
                 "https://localhost:"; + getPort() + "/unprotected");
+
+        if (log.isDebugEnabled()) {
+            int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
+            log.debug("Last client KeyManager usage: " + 
TesterSupport.getLastClientAuthKeyManagerUsage() +
+                      ", " + count + " requested Issuers, first one: " +
+                      (count > 0 ? 
TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE"));
+            log.debug("Expected requested Issuer: " + 
TesterSupport.getClientAuthExpectedIssuer());
+        }
+        assertTrue("Checking requested client issuer against " +
+                   TesterSupport.getClientAuthExpectedIssuer(),
+                   TesterSupport.checkLastClientAuthRequestedIssuers());
+
         assertEquals("OK-" + bodySize, res.toString());
 
         // Protected resource
         res.recycle();
         int rc = postUrl(body, "https://localhost:"; + getPort() + "/protected",
                 res, null);
+
+        if (log.isDebugEnabled()) {
+            int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
+            log.debug("Last client KeyManager usage: " + 
TesterSupport.getLastClientAuthKeyManagerUsage() +
+                      ", " + count + " requested Issuers, first one: " +
+                      (count > 0 ? 
TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE"));
+            log.debug("Expected requested Issuer: " + 
TesterSupport.getClientAuthExpectedIssuer());
+        }
+        assertTrue("Checking requested client issuer against " +
+                   TesterSupport.getClientAuthExpectedIssuer(),
+                   TesterSupport.checkLastClientAuthRequestedIssuers());
+
         if (expectProtectedFail) {
             assertEquals(401, rc);
         } else {

Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java?rev=1804917&r1=1804916&r2=1804917&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TestCustomSsl.java Sun Aug 13 
14:37:06 2017
@@ -159,6 +159,20 @@ public class TestCustomSsl extends Tomca
                 he.printStackTrace();
             }
         }
+
+        if (trustType.equals(TrustType.CA)) {
+            if (log.isDebugEnabled()) {
+                int count = 
TesterSupport.getLastClientAuthRequestedIssuerCount();
+                log.debug("Last client KeyManager usage: " + 
TesterSupport.getLastClientAuthKeyManagerUsage() +
+                          ", " + count + " requested Issuers, first one: " +
+                          (count > 0 ? 
TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE"));
+                log.debug("Expected requested Issuer: " + 
TesterSupport.getClientAuthExpectedIssuer());
+            }
+            assertTrue("Checking requested client issuer against " +
+                       TesterSupport.getClientAuthExpectedIssuer(),
+                       TesterSupport.checkLastClientAuthRequestedIssuers());
+        }
+
         if (trustType.equals(TrustType.NONE)) {
             assertTrue(rc != 200);
             assertEquals("", res.toString());

Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java?rev=1804917&r1=1804916&r2=1804917&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TestSsl.java Sun Aug 13 
14:37:06 2017
@@ -67,6 +67,8 @@ public class TestSsl extends TomcatBaseT
         ByteChunk res = getUrl("https://localhost:"; + getPort() +
             "/examples/servlets/servlet/HelloWorldExample");
         assertTrue(res.toString().indexOf("<a href=\"../helloworld.html\">") > 
0);
+        assertTrue("Checking no client issuer has been requested",
+                   TesterSupport.getLastClientAuthRequestedIssuerCount() == 0);
     }
 
     @Test
@@ -87,6 +89,8 @@ public class TestSsl extends TomcatBaseT
         ByteChunk res = getUrl("https://localhost:"; + getPort() +
             "/examples/servlets/servlet/HelloWorldExample");
         assertTrue(res.toString().indexOf("<a href=\"../helloworld.html\">") > 
0);
+        assertTrue("Checking no client issuer has been requested",
+                   TesterSupport.getLastClientAuthRequestedIssuerCount() == 0);
     }
 
 
@@ -118,6 +122,8 @@ public class TestSsl extends TomcatBaseT
         Reader r = new InputStreamReader(is);
 
         doRequest(os, r);
+        assertTrue("Checking no client issuer has been requested",
+                   TesterSupport.getLastClientAuthRequestedIssuerCount() == 0);
 
         TesterHandshakeListener listener = new TesterHandshakeListener();
         socket.addHandshakeCompletedListener(listener);
@@ -131,6 +137,8 @@ public class TestSsl extends TomcatBaseT
             while (requestCount < 10) {
                 requestCount++;
                 doRequest(os, r);
+                assertTrue("Checking no client issuer has been requested",
+                           
TesterSupport.getLastClientAuthRequestedIssuerCount() == 0);
                 if (listener.isComplete() && listenerComplete == 0) {
                     listenerComplete = requestCount;
                 }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to