From 62f2e2f0ea1ee78282e7fc51f97dc781614a4a27 Mon Sep 17 00:00:00 2001 From: Mohammad Arshad Date: Sun, 28 Mar 2021 09:56:18 +0530 Subject: ZOOKEEPER-3128: Get CLI Command displays Authentication error for Authorization error Author: Mohammad Arshad Reviewers: Enrico Olivelli Closes #1656 from arshadmohammad/ZOOKEEPER-3128-branch-3.6 --- .../src/main/java/org/apache/zookeeper/cli/GetCommand.java | 2 +- .../src/test/java/org/apache/zookeeper/ZooKeeperTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetCommand.java b/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetCommand.java index 57821edde..0558f09b1 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetCommand.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/cli/GetCommand.java @@ -90,7 +90,7 @@ public class GetCommand extends CliCommand { } catch (IllegalArgumentException ex) { throw new MalformedPathException(ex.getMessage()); } catch (KeeperException | InterruptedException ex) { - throw new CliException(ex); + throw new CliWrapperException(ex); } data = (data == null) ? "null".getBytes() : data; out.println(new String(data)); diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java index 859d13c38..8fc3df250 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/ZooKeeperTest.java @@ -698,6 +698,13 @@ public class ZooKeeperTest extends ClientBase { String zNodeToBeCreated = "/permZNode/child1"; String errorMessage = executeLine(zkMain, "create " + zNodeToBeCreated); assertEquals("Insufficient permission : " + zNodeToBeCreated, errorMessage); + + // Test Get command error message when there is not read access + List writeAcl = Arrays.asList(new ACL(ZooDefs.Perms.WRITE, Ids.ANYONE_ID_UNSAFE)); + String noReadPermZNodePath = "/noReadPermZNode"; + zk.create(noReadPermZNodePath, "newData".getBytes(), writeAcl, CreateMode.PERSISTENT); + errorMessage = executeLine(zkMain, "get " + noReadPermZNodePath); + assertEquals("Insufficient permission : " + noReadPermZNodePath, errorMessage); } @Test -- cgit v1.2.1