Repository: accumulo
Updated Branches:
  refs/heads/1.6.1-SNAPSHOT 1b49f44d1 -> 4d70739ab
  refs/heads/master a458a2fae -> eeb06e3a1


ACCUMULO-3053 Pull include/exclude ciphers for Monitor SSL


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/4d70739a
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/4d70739a
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/4d70739a

Branch: refs/heads/1.6.1-SNAPSHOT
Commit: 4d70739abb27749f414d906924746d90d7687a2f
Parents: 1b49f44
Author: Josh Elser <els...@apache.org>
Authored: Thu Aug 7 13:17:44 2014 -0400
Committer: Josh Elser <els...@apache.org>
Committed: Thu Aug 7 13:38:05 2014 -0400

----------------------------------------------------------------------
 .../org/apache/accumulo/core/conf/Property.java |  2 ++
 .../accumulo/monitor/EmbeddedWebServer.java     | 27 ++++++++++++++------
 2 files changed, 21 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/4d70739a/core/src/main/java/org/apache/accumulo/core/conf/Property.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/accumulo/core/conf/Property.java 
b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
index 54d13e6..d7d78a6 100644
--- a/core/src/main/java/org/apache/accumulo/core/conf/Property.java
+++ b/core/src/main/java/org/apache/accumulo/core/conf/Property.java
@@ -309,6 +309,8 @@ public enum Property {
   @Experimental
   @Sensitive
   MONITOR_SSL_TRUSTSTOREPASS("monitor.ssl.trustStorePassword", "", 
PropertyType.STRING, "The truststore password for enabling monitor SSL."),
+  MONITOR_SSL_INCLUDE_CIPHERS("monitor.ssl.include.ciphers", "", 
PropertyType.STRING, "A comma-separated list of allows SSL Ciphers, see 
monitor.ssl.exclude.ciphers to disallow ciphers"),
+  MONITOR_SSL_EXCLUDE_CIPHERS("monitor.ssl.exclude.ciphers", "", 
PropertyType.STRING, "A comma-separated list of disallowed SSL Ciphers, see 
mmonitor.ssl.include.ciphers to allow ciphers"),
 
   MONITOR_LOCK_CHECK_INTERVAL("monitor.lock.check.interval", "5s", 
PropertyType.TIMEDURATION,
       "The amount of time to sleep between checking for the Montior ZooKeeper 
lock"),

http://git-wip-us.apache.org/repos/asf/accumulo/blob/4d70739a/server/monitor/src/main/java/org/apache/accumulo/monitor/EmbeddedWebServer.java
----------------------------------------------------------------------
diff --git 
a/server/monitor/src/main/java/org/apache/accumulo/monitor/EmbeddedWebServer.java
 
b/server/monitor/src/main/java/org/apache/accumulo/monitor/EmbeddedWebServer.java
index a36b942..888913a 100644
--- 
a/server/monitor/src/main/java/org/apache/accumulo/monitor/EmbeddedWebServer.java
+++ 
b/server/monitor/src/main/java/org/apache/accumulo/monitor/EmbeddedWebServer.java
@@ -18,7 +18,9 @@ package org.apache.accumulo.monitor;
 
 import javax.servlet.http.HttpServlet;
 
+import org.apache.accumulo.core.conf.AccumuloConfiguration;
 import org.apache.accumulo.core.conf.Property;
+import org.apache.hadoop.util.StringUtils;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.nio.SelectChannelConnector;
 import org.eclipse.jetty.server.session.SessionHandler;
@@ -40,18 +42,27 @@ public class EmbeddedWebServer {
 
   public EmbeddedWebServer(String host, int port) {
     server = new Server();
-    if 
(EMPTY.equals(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_KEYSTORE))
-        || 
EMPTY.equals(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_KEYSTOREPASS))
-        || 
EMPTY.equals(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_TRUSTSTORE))
 || EMPTY.equals(Monitor.getSystemConfiguration().get(
-Property.MONITOR_SSL_TRUSTSTOREPASS))) {
+    final AccumuloConfiguration conf = Monitor.getSystemConfiguration();
+    if (EMPTY.equals(conf.get(Property.MONITOR_SSL_KEYSTORE)) || 
EMPTY.equals(conf.get(Property.MONITOR_SSL_KEYSTOREPASS))
+        || EMPTY.equals(conf.get(Property.MONITOR_SSL_TRUSTSTORE)) || 
EMPTY.equals(conf.get(Property.MONITOR_SSL_TRUSTSTOREPASS))) {
       connector = new SelectChannelConnector();
       usingSsl = false;
     } else {
       SslContextFactory sslContextFactory = new SslContextFactory();
-      
sslContextFactory.setKeyStorePath(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_KEYSTORE));
-      
sslContextFactory.setKeyStorePassword(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_KEYSTOREPASS));
-      
sslContextFactory.setTrustStore(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_TRUSTSTORE));
-      
sslContextFactory.setTrustStorePassword(Monitor.getSystemConfiguration().get(Property.MONITOR_SSL_TRUSTSTOREPASS));
+      
sslContextFactory.setKeyStorePath(conf.get(Property.MONITOR_SSL_KEYSTORE));
+      
sslContextFactory.setKeyStorePassword(conf.get(Property.MONITOR_SSL_KEYSTOREPASS));
+      
sslContextFactory.setTrustStore(conf.get(Property.MONITOR_SSL_TRUSTSTORE));
+      
sslContextFactory.setTrustStorePassword(conf.get(Property.MONITOR_SSL_TRUSTSTOREPASS));
+
+      final String includedCiphers = 
conf.get(Property.MONITOR_SSL_INCLUDE_CIPHERS);
+      if 
(!Property.MONITOR_SSL_INCLUDE_CIPHERS.getDefaultValue().equals(includedCiphers))
 {
+        
sslContextFactory.setIncludeCipherSuites(StringUtils.split(includedCiphers, 
','));
+      }
+
+      final String excludedCiphers = 
conf.get(Property.MONITOR_SSL_EXCLUDE_CIPHERS);
+      if 
(!Property.MONITOR_SSL_EXCLUDE_CIPHERS.getDefaultValue().equals(excludedCiphers))
 {
+        
sslContextFactory.setExcludeCipherSuites(StringUtils.split(excludedCiphers, 
','));
+      }
 
       connector = new SslSelectChannelConnector(sslContextFactory);
       usingSsl = true;

Reply via email to