Java Code Examples for org.apache.zookeeper.KeeperException#NoAuthException

The following examples show how to use org.apache.zookeeper.KeeperException#NoAuthException . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestZKFailoverController.java    From hadoop with Apache License 2.0 6 votes vote down vote up
/**
 * Test that, if ACLs are specified in the configuration, that
 * it sets the ACLs when formatting the parent node.
 */
@Test(timeout=15000)
public void testFormatSetsAcls() throws Exception {
  // Format the base dir, should succeed
  DummyHAService svc = cluster.getService(1);
  assertEquals(0, runFC(svc, "-formatZK"));

  ZooKeeper otherClient = createClient();
  try {
    // client without auth should not be able to read it
    Stat stat = new Stat();
    otherClient.getData(ZKFailoverController.ZK_PARENT_ZNODE_DEFAULT,
        false, stat);
    fail("Was able to read data without authenticating!");
  } catch (KeeperException.NoAuthException nae) {
    // expected
  }
}
 
Example 2
Source File: TestZKFailoverController.java    From big-c with Apache License 2.0 6 votes vote down vote up
/**
 * Test that, if ACLs are specified in the configuration, that
 * it sets the ACLs when formatting the parent node.
 */
@Test(timeout=15000)
public void testFormatSetsAcls() throws Exception {
  // Format the base dir, should succeed
  DummyHAService svc = cluster.getService(1);
  assertEquals(0, runFC(svc, "-formatZK"));

  ZooKeeper otherClient = createClient();
  try {
    // client without auth should not be able to read it
    Stat stat = new Stat();
    otherClient.getData(ZKFailoverController.ZK_PARENT_ZNODE_DEFAULT,
        false, stat);
    fail("Was able to read data without authenticating!");
  } catch (KeeperException.NoAuthException nae) {
    // expected
  }
}
 
Example 3
Source File: ZkCLITest.java    From lucene-solr with Apache License 2.0 6 votes vote down vote up
@Test
public void testUpdateAcls() throws Exception {
  try {
    System.setProperty(SolrZkClient.ZK_ACL_PROVIDER_CLASS_NAME_VM_PARAM_NAME, VMParamsAllAndReadonlyDigestZkACLProvider.class.getName());
    System.setProperty(VMParamsAllAndReadonlyDigestZkACLProvider.DEFAULT_DIGEST_READONLY_USERNAME_VM_PARAM_NAME, "user");
    System.setProperty(VMParamsAllAndReadonlyDigestZkACLProvider.DEFAULT_DIGEST_READONLY_PASSWORD_VM_PARAM_NAME, "pass");

    String[] args = new String[]{"-zkhost", zkServer.getZkAddress(), "-cmd", "updateacls", "/"};
    ZkCLI.main(args);
  } finally {
    // Need to clear these before we open the next SolrZkClient
    System.clearProperty(SolrZkClient.ZK_ACL_PROVIDER_CLASS_NAME_VM_PARAM_NAME);
    System.clearProperty(VMParamsAllAndReadonlyDigestZkACLProvider.DEFAULT_DIGEST_READONLY_USERNAME_VM_PARAM_NAME);
    System.clearProperty(VMParamsAllAndReadonlyDigestZkACLProvider.DEFAULT_DIGEST_READONLY_PASSWORD_VM_PARAM_NAME);
  }

  boolean excepted = false;
  try (SolrZkClient zkClient = new SolrZkClient(zkServer.getZkAddress(), AbstractDistribZkTestBase.DEFAULT_CONNECTION_TIMEOUT)) {
    zkClient.getData("/", null, null, true);
  } catch (KeeperException.NoAuthException e) {
    excepted = true;
  }
  assertTrue("Did not fail to read.", excepted);
}
 
Example 4
Source File: TestZooKeeperClient.java    From distributedlog with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testAclCreatePerms() throws Exception {
    ZooKeeperClient zkcAuth = buildAuthdClient("test");
    zkcAuth.get().create("/test", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    zkcAuth.get().create("/test/key1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    zkcAuth.get().create("/test/key2", new byte[0],
            DistributedLogConstants.EVERYONE_READ_CREATOR_ALL, CreateMode.PERSISTENT);

    ZooKeeperClient zkcNoAuth = buildClient();
    zkcNoAuth.get().create("/test/key1/key1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    try {
        zkcNoAuth.get().create("/test/key2/key1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        fail("create should fail on acl protected key");
    } catch (KeeperException.NoAuthException ex) {
        LOG.info("caught exception writing to protected key", ex);
    }

    rmAll(zkcAuth, "/test");
}
 
Example 5
Source File: TestZooKeeperClient.java    From distributedlog with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testAclCreatePerms() throws Exception {
    ZooKeeperClient zkcAuth = buildAuthdClient("test");
    zkcAuth.get().create("/test", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    zkcAuth.get().create("/test/key1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    zkcAuth.get().create("/test/key2", new byte[0], DistributedLogConstants.EVERYONE_READ_CREATOR_ALL, CreateMode.PERSISTENT);

    ZooKeeperClient zkcNoAuth = buildClient();
    zkcNoAuth.get().create("/test/key1/key1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    try {
        zkcNoAuth.get().create("/test/key2/key1", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        fail("create should fail on acl protected key");
    } catch (KeeperException.NoAuthException ex) {
        LOG.info("caught exception writing to protected key", ex);
    }

    rmAll(zkcAuth, "/test");
}
 
Example 6
Source File: ZKRMStateStore.java    From hadoop with Apache License 2.0 5 votes vote down vote up
T runWithRetries() throws Exception {
  int retry = 0;
  while (true) {
    try {
      return runWithCheck();
    } catch (KeeperException.NoAuthException nae) {
      if (HAUtil.isHAEnabled(getConfig())) {
        // NoAuthException possibly means that this store is fenced due to
        // another RM becoming active. Even if not,
        // it is safer to assume we have been fenced
        throw new StoreFencedException();
      }
    } catch (KeeperException ke) {
      if (ke.code() == Code.NODEEXISTS) {
        LOG.info("znode already exists!");
        return null;
      }
      if (hasDeleteNodeOp && ke.code() == Code.NONODE) {
        LOG.info("znode has already been deleted!");
        return null;
      }

      LOG.info("Exception while executing a ZK operation.", ke);
      if (shouldRetry(ke.code()) && ++retry < numRetries) {
        LOG.info("Retrying operation on ZK. Retry no. " + retry);
        Thread.sleep(zkRetryInterval);
        createConnection();
        continue;
      }
      LOG.info("Maxed out ZK retries. Giving up!");
      throw ke;
    }
  }
}
 
Example 7
Source File: ZKRMStateStore.java    From big-c with Apache License 2.0 5 votes vote down vote up
T runWithRetries() throws Exception {
  int retry = 0;
  while (true) {
    try {
      return runWithCheck();
    } catch (KeeperException.NoAuthException nae) {
      if (HAUtil.isHAEnabled(getConfig())) {
        // NoAuthException possibly means that this store is fenced due to
        // another RM becoming active. Even if not,
        // it is safer to assume we have been fenced
        throw new StoreFencedException();
      }
    } catch (KeeperException ke) {
      if (ke.code() == Code.NODEEXISTS) {
        LOG.info("znode already exists!");
        return null;
      }
      if (hasDeleteNodeOp && ke.code() == Code.NONODE) {
        LOG.info("znode has already been deleted!");
        return null;
      }

      LOG.info("Exception while executing a ZK operation.", ke);
      if (shouldRetry(ke.code()) && ++retry < numRetries) {
        LOG.info("Retrying operation on ZK. Retry no. " + retry);
        Thread.sleep(zkRetryInterval);
        createConnection();
        continue;
      }
      LOG.info("Maxed out ZK retries. Giving up!");
      throw ke;
    }
  }
}
 
Example 8
Source File: SolrZkClientTest.java    From lucene-solr with Apache License 2.0 5 votes vote down vote up
private static boolean canRead(SolrZkClient zkClient, String path) throws KeeperException, InterruptedException {
  try {
    zkClient.getData(path, null, null, true);
    return true;
  } catch (KeeperException.NoAuthException e) {
    return false;
  }
}
 
Example 9
Source File: AuthIPExample.java    From yuzhouwan with Apache License 2.0 4 votes vote down vote up
@Test
public void ipAcl() throws Exception {
    /*
    $ zkCli.sh -server localhost:2181
    [zk: localhost:2181(CONNECTED) 16] ls /
    [leader, election, zookeeper, origin, ip, auth_test, benchmark]

    [zk: localhost:2181(CONNECTED) 17] ls /ip
    Authentication is not valid : /ip

    [zk: localhost:2181(CONNECTED) 18] getAcl /ip
      'ip,'10.24.40.178
      : cdrwa
      'ip,'127.0.0.1
      : cdrwa


    $ zkCli.sh -server 127.0.0.1:2181
    [zk: 127.0.0.1:2181(CONNECTED) 1] ls /ip
      []

    [zk: 127.0.0.1:2181(CONNECTED) 2] get /ip
      ip
      cZxid = 0x10000c43b
      ctime = Tue Aug 22 16:50:37 CST 2017
      mZxid = 0x10000c43b
      mtime = Tue Aug 22 16:50:37 CST 2017
      pZxid = 0x10000c43b
      cversion = 0
      dataVersion = 0
      aclVersion = 0
      ephemeralOwner = 0x0
      dataLength = 2
      numChildren = 0
     */
    if (zoo.exists(IP_PATH, null) != null) zoo.delete(IP_PATH, -1);
    if (zoo.exists(IP_PATH_NO_AUTH, null) != null) zoo.delete(IP_PATH_NO_AUTH, -1);
    zoo.create(IP_PATH, IP.getBytes(), acls, CreateMode.PERSISTENT);
    assertEquals(IP, new String(zoo.getData(IP_PATH, false, null)));
    zoo.create(IP_PATH_NO_AUTH, IP.getBytes(), aclsNoAuth, CreateMode.PERSISTENT);
    try {
        zoo.getData(IP_PATH_NO_AUTH, false, null);
    } catch (KeeperException.NoAuthException e) {
        assertEquals("KeeperErrorCode = NoAuth for ".concat(IP_PATH_NO_AUTH), e.getMessage());
    }
}