You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/07/31 21:16:28 UTC
svn commit: r1837176 - in /tomcat/trunk/test/org/apache/tomcat/util/net:
TestClientCert.java TesterSupport.java
Author: markt
Date: Tue Jul 31 21:16:28 2018
New Revision: 1837176
URL: http://svn.apache.org/viewvc?rev=1837176&view=rev
Log:
Make tests more robust and not dependent on order of individual test execution.
Modified:
tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java
tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.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=1837176&r1=1837175&r2=1837176&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TestClientCert.java Tue Jul 31 21:16:28 2018
@@ -59,23 +59,24 @@ public class TestClientCert extends Tomc
getTomcatInstance().start();
// Unprotected resource
- ByteChunk res =
- getUrl("https://localhost:" + getPort() + "/unprotected");
+ ByteChunk res = getUrl("https://localhost:" + getPort() + "/unprotected");
+ int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
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());
+ log.debug("Expected requested Issuer: " +
+ (preemptive ? TesterSupport.getClientAuthExpectedIssuer() : "NONE"));
}
- Assert.assertTrue("Checking requested client issuer against " +
- TesterSupport.getClientAuthExpectedIssuer(),
- TesterSupport.checkLastClientAuthRequestedIssuers());
if (preemptive) {
+ Assert.assertTrue("Checking requested client issuer against " +
+ TesterSupport.getClientAuthExpectedIssuer(),
+ TesterSupport.checkLastClientAuthRequestedIssuers());
Assert.assertEquals("OK-" + TesterSupport.ROLE, res.toString());
} else {
+ Assert.assertEquals(0, count);
Assert.assertEquals("OK", res.toString());
}
@@ -83,7 +84,7 @@ public class TestClientCert extends Tomc
res = getUrl("https://localhost:" + getPort() + "/protected");
if (log.isDebugEnabled()) {
- int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
+ count = TesterSupport.getLastClientAuthRequestedIssuerCount();
log.debug("Last client KeyManager usage: " + TesterSupport.getLastClientAuthKeyManagerUsage() +
", " + count + " requested Issuers, first one: " +
(count > 0 ? TesterSupport.getLastClientAuthRequestedIssuer(0).getName() : "NONE"));
@@ -128,41 +129,42 @@ public class TestClientCert extends Tomc
Arrays.fill(body, TesterSupport.DATA);
// Unprotected resource
- ByteChunk res = postUrl(body,
- "https://localhost:" + getPort() + "/unprotected");
+ ByteChunk res = postUrl(body, "https://localhost:" + getPort() + "/unprotected");
+ int count = TesterSupport.getLastClientAuthRequestedIssuerCount();
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());
+ log.debug("Expected requested Issuer: NONE");
}
- Assert.assertTrue("Checking requested client issuer against " +
- TesterSupport.getClientAuthExpectedIssuer(),
- TesterSupport.checkLastClientAuthRequestedIssuers());
+ // Unprotected resource with no preemptive authentication
+ Assert.assertEquals(0, count);
+ // No authentication no need to buffer POST body during TLS handshake so
+ // no possibility of hitting buffer limit
Assert.assertEquals("OK-" + bodySize, res.toString());
// Protected resource
res.recycle();
- int rc = postUrl(body, "https://localhost:" + getPort() + "/protected",
- res, null);
+ int rc = postUrl(body, "https://localhost:" + getPort() + "/protected", res, null);
+ count = TesterSupport.getLastClientAuthRequestedIssuerCount();
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());
}
- Assert.assertTrue("Checking requested client issuer against " +
- TesterSupport.getClientAuthExpectedIssuer(),
- TesterSupport.checkLastClientAuthRequestedIssuers());
if (expectProtectedFail) {
Assert.assertEquals(401, rc);
+ // POST body buffer fails so TLS handshake never happens
+ Assert.assertEquals(0, count);
} else {
+ Assert.assertTrue("Checking requested client issuer against " +
+ TesterSupport.getClientAuthExpectedIssuer(),
+ TesterSupport.checkLastClientAuthRequestedIssuers());
Assert.assertEquals("OK-" + bodySize, res.toString());
}
}
Modified: tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java?rev=1837176&r1=1837175&r2=1837176&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/net/TesterSupport.java Tue Jul 31 21:16:28 2018
@@ -75,7 +75,7 @@ public final class TesterSupport {
public static final String ROLE = "testrole";
- private static String clientAuthExpectedIssuer = null;
+ private static String clientAuthExpectedIssuer;
private static String lastUsage = "NONE";
private static Principal[] lastRequestedIssuers = new Principal[0];
@@ -275,6 +275,10 @@ public final class TesterSupport {
lc.setAuthMethod("CLIENT-CERT");
ctx.setLoginConfig(lc);
ctx.getPipeline().addValve(new SSLAuthenticator());
+
+ // Clear the tracking data
+ lastUsage = "NONE";
+ lastRequestedIssuers = new Principal[0];
}
protected static String getClientAuthExpectedIssuer() {
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org