Repository: atlas
Updated Branches:
  refs/heads/branch-0.8 1a02dfe56 -> 77a94d2e6


ATLAS-2587:- Set read ACL for /apache_atlas/active_server_info znode in HA for 
Knox proxy to read.


Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/77a94d2e
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/77a94d2e
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/77a94d2e

Branch: refs/heads/branch-0.8
Commit: 77a94d2e63579651192788a74072733d69f61ce6
Parents: 1a02dfe
Author: nixonrodrigues <[email protected]>
Authored: Thu Apr 19 16:07:40 2018 +0530
Committer: nixonrodrigues <[email protected]>
Committed: Fri Apr 20 00:16:53 2018 +0530

----------------------------------------------------------------------
 .../atlas/web/service/ActiveInstanceState.java  | 21 +++++++++++++++-----
 .../web/service/ActiveInstanceStateTest.java    |  6 ++++--
 2 files changed, 20 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/atlas/blob/77a94d2e/webapp/src/main/java/org/apache/atlas/web/service/ActiveInstanceState.java
----------------------------------------------------------------------
diff --git 
a/webapp/src/main/java/org/apache/atlas/web/service/ActiveInstanceState.java 
b/webapp/src/main/java/org/apache/atlas/web/service/ActiveInstanceState.java
index c6b4a6f..f417dcd 100644
--- a/webapp/src/main/java/org/apache/atlas/web/service/ActiveInstanceState.java
+++ b/webapp/src/main/java/org/apache/atlas/web/service/ActiveInstanceState.java
@@ -24,19 +24,21 @@ import org.apache.atlas.AtlasException;
 import org.apache.atlas.exception.AtlasBaseException;
 import org.apache.atlas.ha.HAConfiguration;
 import org.apache.commons.configuration.Configuration;
+import org.apache.commons.lang.StringUtils;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.recipes.locks.InterProcessReadWriteLock;
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.ZooDefs;
 import org.apache.zookeeper.data.ACL;
+import org.apache.zookeeper.data.Id;
 import org.apache.zookeeper.data.Stat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
-import scala.actors.threadpool.Arrays;
-
 import javax.inject.Inject;
 import java.nio.charset.Charset;
+import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -91,9 +93,18 @@ public class ActiveInstanceState {
             HAConfiguration.ZookeeperProperties zookeeperProperties =
                     HAConfiguration.getZookeeperProperties(configuration);
             String atlasServerAddress = 
HAConfiguration.getBoundAddressForId(configuration, serverId);
-            List<ACL> acls = Arrays.asList(
-                    new 
ACL[]{AtlasZookeeperSecurityProperties.parseAcl(zookeeperProperties.getAcl(),
-                            ZooDefs.Ids.OPEN_ACL_UNSAFE.get(0))});
+
+            List<ACL> acls = new ArrayList<ACL>();
+            ACL parsedACL = 
AtlasZookeeperSecurityProperties.parseAcl(zookeeperProperties.getAcl(),
+                    ZooDefs.Ids.OPEN_ACL_UNSAFE.get(0));
+            acls.add(parsedACL);
+
+            //adding world read permission
+            if (StringUtils.isNotEmpty(zookeeperProperties.getAcl())) {
+                ACL worldReadPermissionACL = new ACL(ZooDefs.Perms.READ, new 
Id("world", "anyone"));
+                acls.add(worldReadPermissionACL);
+            }
+
             Stat serverInfo = 
client.checkExists().forPath(getZnodePath(zookeeperProperties));
             if (serverInfo == null) {
                 client.create().

http://git-wip-us.apache.org/repos/asf/atlas/blob/77a94d2e/webapp/src/test/java/org/apache/atlas/web/service/ActiveInstanceStateTest.java
----------------------------------------------------------------------
diff --git 
a/webapp/src/test/java/org/apache/atlas/web/service/ActiveInstanceStateTest.java
 
b/webapp/src/test/java/org/apache/atlas/web/service/ActiveInstanceStateTest.java
index 7ad2f76..ca27150 100644
--- 
a/webapp/src/test/java/org/apache/atlas/web/service/ActiveInstanceStateTest.java
+++ 
b/webapp/src/test/java/org/apache/atlas/web/service/ActiveInstanceStateTest.java
@@ -114,9 +114,11 @@ public class ActiveInstanceStateTest {
         CreateBuilder createBuilder = mock(CreateBuilder.class);
         when(curatorFramework.create()).thenReturn(createBuilder);
         
when(createBuilder.withMode(CreateMode.EPHEMERAL)).thenReturn(createBuilder);
-        ACL expectedAcl = new ACL(ZooDefs.Perms.ALL, new Id("sasl", 
"[email protected]"));
+       ACL expectedAcl = new ACL(ZooDefs.Perms.ALL, new Id("sasl", 
"[email protected]"));
+       ACL expectedAcl1 = new ACL(ZooDefs.Perms.READ, new Id("world", 
"anyone"));
         when(createBuilder.
-                withACL(Arrays.asList(new 
ACL[]{expectedAcl}))).thenReturn(createBuilder);
+                withACL(Arrays.asList(new 
ACL[]{expectedAcl,expectedAcl1}))).thenReturn(createBuilder);
+
 
         SetDataBuilder setDataBuilder = mock(SetDataBuilder.class);
         when(curatorFramework.setData()).thenReturn(setDataBuilder);

Reply via email to