From c67a94a640eaf875a2ee82a2fdbfea8bd3441a83 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Fri, 26 Aug 2016 21:28:01 +0200 Subject: Revert "Bratseth/lockdown zk" --- .../zookeeper/RestrictedServerCnxnFactory.java | 53 ---------------------- .../com/yahoo/vespa/zookeeper/ZooKeeperServer.java | 13 ------ .../yahoo/vespa/zookeeper/ZooKeeperServerTest.java | 3 +- 3 files changed, 2 insertions(+), 67 deletions(-) delete mode 100644 zkfacade/src/main/java/com/yahoo/vespa/zookeeper/RestrictedServerCnxnFactory.java diff --git a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/RestrictedServerCnxnFactory.java b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/RestrictedServerCnxnFactory.java deleted file mode 100644 index ae7df9ac7cf..00000000000 --- a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/RestrictedServerCnxnFactory.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.yahoo.vespa.zookeeper; - -import org.apache.zookeeper.server.NIOServerCnxn; -import org.apache.zookeeper.server.NIOServerCnxnFactory; - -import java.io.IOException; -import java.net.InetSocketAddress; -import java.nio.channels.SelectionKey; -import java.nio.channels.SocketChannel; -import java.util.HashSet; -import java.util.Set; -import java.util.logging.Logger; - -/** - * This class is created by zookeeper by reflection, see the ZooKeeperServer constructor. - * - * @author bratseth - */ -@SuppressWarnings("unused") -public class RestrictedServerCnxnFactory extends NIOServerCnxnFactory { - - private static final Logger log = Logger.getLogger(RestrictedServerCnxnFactory.class.getName()); - private final Set zooKeeperServerHostnames; - - public RestrictedServerCnxnFactory() throws IOException { - super(); - zooKeeperServerHostnames = toHostnameSet(System.getProperty(ZooKeeperServer.ZOOKEEPER_VESPA_SERVERS_PROPERTY)); - } - - private Set toHostnameSet(String commaSeparatedString) { - if (commaSeparatedString == null || commaSeparatedString.isEmpty()) - throw new IllegalArgumentException("We have not received the list of ZooKeeper servers in this system"); - - Set hostnames = new HashSet<>(); - for (String hostname : commaSeparatedString.split(",")) - hostnames.add(hostname.trim()); - return hostnames; - } - - @Override - protected NIOServerCnxn createConnection(SocketChannel socket, SelectionKey selection) throws IOException { - String remoteHost = ((InetSocketAddress)socket.getRemoteAddress()).getHostName(); - if ( ! remoteHost.equals("localhost") && ! zooKeeperServerHostnames.contains(remoteHost)) { - String errorMessage = "Rejecting connection to ZooKeeper from " + remoteHost + - ": This cluster only allow connection among its own hosts. " + - "Hosts in this cluster: " + zooKeeperServerHostnames; - log.warning(errorMessage); - throw new IllegalArgumentException(errorMessage); - } - return super.createConnection(socket, selection); - } - -} diff --git a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java index d4670e97ed8..ffae797561c 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java @@ -22,7 +22,6 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable { private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(ZooKeeperServer.class.getName()); private static final String ZOOKEEPER_JMX_LOG4J_DISABLE = "zookeeper.jmx.log4j.disable"; static final String ZOOKEEPER_JUTE_MAX_BUFFER = "jute.maxbuffer"; - static final String ZOOKEEPER_VESPA_SERVERS_PROPERTY = "zookeeper.vespa.servers"; private final Thread zkServerThread; private final ZookeeperServerConfig config; @@ -30,10 +29,6 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable { this.config = config; System.setProperty("zookeeper.jmx.log4j.disable", "true"); System.setProperty(ZOOKEEPER_JUTE_MAX_BUFFER, "" + config.juteMaxBuffer()); - - System.setProperty(ZOOKEEPER_VESPA_SERVERS_PROPERTY, toHostnameString(config.server())); - System.setProperty("zookeeper.serverCnxnFactory", "com.yahoo.vespa.zookeeper.RestrictedServerCnxnFactory"); - writeConfigToDisk(config); zkServerThread = new Thread(this, "zookeeper server"); if (startServer) { @@ -45,14 +40,6 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable { public ZooKeeperServer(ZookeeperServerConfig config) { this(config, true); } - - private String toHostnameString(List servers) { - StringBuilder b = new StringBuilder(); - for (ZookeeperServerConfig.Server server : servers) - b.append(server.hostname()).append(", "); - b.setLength(b.length()-1); // remove the last ", " - return b.toString(); - } private void writeConfigToDisk(ZookeeperServerConfig config) { String cfg = transformConfigToString(config); diff --git a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java index 8c4db5dc8e4..4e231631f28 100644 --- a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java +++ b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.zookeeper; import com.yahoo.cloud.config.ZookeeperServerConfig; import com.yahoo.io.IOUtils; +import com.yahoo.vespa.curator.Curator; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -11,6 +12,7 @@ import java.io.File; import java.io.IOException; import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import com.yahoo.vespa.defaults.Defaults; @@ -72,7 +74,6 @@ public class ZooKeeperServerTest { File idFile = folder.newFile(); File cfgFile = folder.newFile(); - builder.server(new ZookeeperServerConfig.Server.Builder().id(0).hostname("testhost")); builder.zooKeeperConfigFile(cfgFile.getAbsolutePath()); builder.myidFile(idFile.getAbsolutePath()); -- cgit v1.2.3