Zookeeper实例原生API--无权限信息的Zookeeper会话访问有权限信息的节点


import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
/**
 * 
* @ClassName: AuthSample_Get 
* @Description: TODO(使用无权限信息的ZooKeeper会话访问含权限信息的数据节点) 
* @author RongShu
* @date 2017年6月11日 下午8:42:04 
*
 */
public class AuthSample_Get {
    final static String PATH = "/zk-book-auth_test";
    public static void main(String[] args) throws Exception {
        ZooKeeper zookeeper1 = new ZooKeeper("localhost:2181",5000,null);
        zookeeper1.addAuthInfo("digest", "foo:true".getBytes());
        zookeeper1.create( PATH, "init".getBytes(), Ids.CREATOR_ALL_ACL, CreateMode.EPHEMERAL );
        ZooKeeper zookeeper2 = new ZooKeeper("localhost:2181",50000,null);
        zookeeper2.getData( PATH, false, null );
    }
}

输出
Exception in thread "main" org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /zk-book-auth_test
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:113)
	at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
	at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1212)
	at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:1241)
	at book.chapter05.$5_3_7.AuthSample_Get.main(AuthSample_Get.java:20)


注意:

我们首先通过一个包含权限信息的客户端会话 建立一个数据节点,然后使用不包含权限信息的客户端对会话进行访问,输出了错误信息。


参考

1.《从Paxos到Zookeeper:分布式一致性原理与实践》

2.https://zookeeper.apache.org/doc/r3.5.3-beta/javaExample.html


你可能感兴趣的:(Zookeeper)