Repository: atlas
Updated Branches:
  refs/heads/master d55405955 -> b03c24840


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/b03c2484
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/b03c2484
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/b03c2484

Branch: refs/heads/master
Commit: b03c248405b51a905a117ab60ab533c3ce892539
Parents: d554059
Author: nixonrodrigues <[email protected]>
Authored: Thu Apr 19 16:07:40 2018 +0530
Committer: nixonrodrigues <[email protected]>
Committed: Fri Apr 20 00:19:35 2018 +0530

----------------------------------------------------------------------
 .../atlas/web/service/ActiveInstanceState.java    | 18 +++++++++++++++---
 .../web/service/ActiveInstanceStateTest.java      |  6 ++++--
 2 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/atlas/blob/b03c2484/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 ea8b738..1028265 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,11 +24,13 @@ 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;
@@ -37,6 +39,7 @@ import org.springframework.stereotype.Component;
 import javax.inject.Inject;
 import java.nio.charset.Charset;
 import java.util.Arrays;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -91,9 +94,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/b03c2484/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 25f39f2..713be8d 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