Repository: hadoop
Updated Branches:
  refs/heads/branch-2.7 4845464ba -> 2ed1a5d00


HADOOP-15674. Test failure TestSSLHttpServer.testExcludedCiphers with 
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 cipher suite. Contributed by Szilard 
Nemeth.

(cherry picked from commit 8d7c93186e3090b19aa59006bb6b32ba929bd8e6)

 Conflicts:
        
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/http/TestSSLHttpServer.java

(cherry picked from commit 5232653ec0bf8d08187f41930eec073e1b7b1df2)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2ed1a5d0
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2ed1a5d0
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2ed1a5d0

Branch: refs/heads/branch-2.7
Commit: 2ed1a5d000e3c18003a51dae3d161dcc19f0a307
Parents: 4845464
Author: Xiao Chen <x...@apache.org>
Authored: Fri Aug 17 10:08:52 2018 -0700
Committer: Xiao Chen <x...@apache.org>
Committed: Fri Aug 17 10:21:10 2018 -0700

----------------------------------------------------------------------
 .../apache/hadoop/http/TestSSLHttpServer.java   | 61 ++++++++++++++++++--
 1 file changed, 57 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ed1a5d0/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/http/TestSSLHttpServer.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/http/TestSSLHttpServer.java
 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/http/TestSSLHttpServer.java
index 0436cc0..cdeb3b5 100644
--- 
a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/http/TestSSLHttpServer.java
+++ 
b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/http/TestSSLHttpServer.java
@@ -32,8 +32,6 @@ import javax.net.ssl.SSLHandshakeException;
 import javax.net.ssl.SSLSocket;
 import javax.net.ssl.SSLSocketFactory;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileUtil;
 import org.apache.hadoop.io.IOUtils;
@@ -43,10 +41,12 @@ import org.apache.hadoop.security.ssl.SSLFactory;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This testcase issues SSL certificates configures the HttpServer to serve
- * HTTPS using the created certficates and calls an echo servlet using the
+ * HTTPS using the created certificates and calls an echo servlet using the
  * corresponding HTTPS URL.
  */
 public class TestSSLHttpServer extends HttpServerFunctionalTest {
@@ -54,12 +54,17 @@ public class TestSSLHttpServer extends 
HttpServerFunctionalTest {
   private static final String BASEDIR = System.getProperty("test.build.dir",
       "target/test-dir") + "/" + TestSSLHttpServer.class.getSimpleName();
 
-  private static final Log LOG = LogFactory.getLog(TestSSLHttpServer.class);
+  private static final Logger LOG =
+      LoggerFactory.getLogger(TestSSLHttpServer.class);
+  private static final String HTTPS_CIPHER_SUITES_KEY = "https.cipherSuites";
+  private static final String JAVAX_NET_DEBUG_KEY = "javax.net.debug";
   private static Configuration conf;
   private static HttpServer2 server;
   private static String keystoresDir;
   private static String sslConfDir;
   private static SSLFactory clientSslFactory;
+  private static String cipherSuitesPropertyValue;
+  private static String sslDebugPropertyValue;
   private static final String excludeCiphers = 
"TLS_ECDHE_RSA_WITH_RC4_128_SHA,"
       + "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,"
       + "SSL_RSA_WITH_DES_CBC_SHA,"
@@ -80,6 +85,9 @@ public class TestSSLHttpServer extends 
HttpServerFunctionalTest {
 
   @BeforeClass
   public static void setup() throws Exception {
+    turnOnSSLDebugLogging();
+    storeHttpsCipherSuites();
+
     conf = new Configuration();
     conf.setInt(HttpServer2.HTTP_MAX_THREADS, 10);
 
@@ -125,6 +133,51 @@ public class TestSSLHttpServer extends 
HttpServerFunctionalTest {
     FileUtil.fullyDelete(new File(BASEDIR));
     KeyStoreTestUtil.cleanupSSLConfig(keystoresDir, sslConfDir);
     clientSslFactory.destroy();
+    restoreHttpsCipherSuites();
+    restoreSSLDebugLogging();
+  }
+
+  /**
+   * Stores the JVM property value of https.cipherSuites and sets its
+   * value to an empty string.
+   * This ensures that the value https.cipherSuites does
+   * not affect the result of tests.
+   */
+  private static void storeHttpsCipherSuites() {
+    String cipherSuites = System.getProperty(HTTPS_CIPHER_SUITES_KEY);
+    if (cipherSuites != null) {
+      LOG.info(
+          "Found value for property {}: {}", HTTPS_CIPHER_SUITES_KEY,
+          cipherSuites);
+      cipherSuitesPropertyValue = cipherSuites;
+    }
+    System.clearProperty(HTTPS_CIPHER_SUITES_KEY);
+  }
+
+  private static void restoreHttpsCipherSuites() {
+    if (cipherSuitesPropertyValue != null) {
+      LOG.info("Restoring property {} to value: {}", HTTPS_CIPHER_SUITES_KEY,
+          cipherSuitesPropertyValue);
+      System.setProperty(HTTPS_CIPHER_SUITES_KEY, cipherSuitesPropertyValue);
+      cipherSuitesPropertyValue = null;
+    }
+  }
+
+  private static void turnOnSSLDebugLogging() {
+    String sslDebug = System.getProperty(JAVAX_NET_DEBUG_KEY);
+    if (sslDebug != null) {
+      sslDebugPropertyValue = sslDebug;
+    }
+    System.setProperty(JAVAX_NET_DEBUG_KEY, "all");
+  }
+
+  private static void restoreSSLDebugLogging() {
+    if (sslDebugPropertyValue != null) {
+      System.setProperty(JAVAX_NET_DEBUG_KEY, sslDebugPropertyValue);
+      sslDebugPropertyValue = null;
+    } else {
+      System.clearProperty(JAVAX_NET_DEBUG_KEY);
+    }
   }
 
   @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to