??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
Zookeeper ACL 使用node-zookeeper-client

转载   2014-07-30   浏览量:1112


再分布式系统中,ACL(Access Control)十分重要;Zookeeper也提供了十分好用的ACL接口,下面我记录一下在nodejs下如何实现zookeeper的访问控制。 Zookeeper的ACL通常表示为:Scheme:Id:Permission,即Scheme,Id,Permission三个部分。其中,Scheme表示使用何种方式来进行访问控制,Id代表用户,Permission表示有什么权限。

ZooKeeeper has the following built in schemes:

ZooKeeper有如下几种内置的Schemes

  • world has a single id, anyone, that represents anyone.

    代表所有人都能够访问
  • auth doesn't use any id, represents any authenticated user.

    不需要Id,通过auth的用户都能够访问
  • digest uses a username:password string to generate MD5 hash which is then used as an ACL ID identity. Authentication is done by sending the username:password in clear text. When used in the ACL the expression will be the username:base64 encoded SHA1 password digest.

    通过用户名密码方式的auth验证,Id的格式为username:base64 encoded SHA1 password digest
  • host uses the client host name as an ACL ID identity. The ACL expression is a hostname suffix. For example, the ACL expression host:corp.com matches the ids host:host1.corp.com and host:host2.corp.com, but nothost:host1.store.com.

    使用客户端的host name作为Acl的Id
  • ip uses the client host IP as an ACL ID identity. The ACL expression is of the form addr/bits where the most significant bits of addr are matched against the most significant bits of the client host IP.

    使用客户端的Ip作为Acl的

    zookeeper目前支持下面一些权限:

    • CREATE(c): 创建权限,可以在在当前node下创建child node
    • DELETE(d): 删除权限,可以删除当前的node
    • READ(r): 读权限,可以获取当前node的数据,可以list当前node所有的child nodes
    • WRITE(w): 写权限,可以向当前node写数据
    • ADMIN(a): 管理权限,可以设置当前node的permission 我使用的ZooKeeper client是:node-zookeeper-client???,项目地址:https://github.com/alexguan/node-zookeeper-client 首先,再创建Node的时候设置ACL,node-zookeeper-client创建node的接口为:

      void create(path, [data], [acls], [mode], callback)

      Create a node with given path, data, acls and mode.

      Arguments

      • path String - Path of the node.
      • data Buffer - The data buffer, optional, defaults to null.
      • acls Array - An array of ACL objects, optional, defaults to ACL.OPEN_ACL_UNSAFE
      • mode CreateMode - The creation mode, optional, defaults to CreateMode.PERSISTENT
      • callback(error, path) Function - The callback function. 可以通过new zookeeper.ACL(permission, id)来创建ACL实例,需要传入两个参数,zookeeper.Permission.ADMIN,
        new zookeeper.Id('ip', '127.0.0.1');
        完整代码如下:
        var zookeeper = require('node-zookeeper-client');
        var id = new zookeeper.Id('ip', '192.168.1.123');
        var client = zookeeper.createClient('192.168.1.100:2181');
        var acl = new zookeeper.ACL(zookeeper.Permission.ADMIN, id);
        client.create('/test', new Buffer('test'), [acl], zookeeper.CreateMode.PERSISTENT, function (err, path) {
        //handler callback
        });

        如何有客户端想访问/test节点,则需要通过上面的访问控制,具体代码如下:
        var zookeeper = require('node-zookeeper-client');
        var client = zookeeper.createClient('192.168.1.100:2181');
        zookeeper.addAuthInfo('ip', new Buffer('192.168.1.123'));
        client.getData('/test', null, function() {
        //handler callback
        });
        
        
        						

转载自:https://www.2cto.com/kf/201407/321616.html

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



微服务理念以及dobbo+zookeeper入门微服务架构
微服务理念以及dobbo+zookeeper入门微服务架构。微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太过于吸引人,以至于大部分开发者都将它当成未来的发展趋势。
ZooKeeper是按照CP原则构建的,不适合做Service服务发现
ZooKeeper是按照CP原则构建的,不适合做Service服务发现。
Zookeeper ACL 使用node-zookeeper-client
再分布式系统中,ACL(AccessControl)十分重要;Zookeeper也提供了十分好用的ACL接口,下面我记录一下在nodejs下如何实现zookeeper的访问控制。Zookeeper的ACL通常表示为:Scheme:Id:Permission,即S
zookeeper环境搭建与启动
解压[[email protected]]#tarzxvfzookeeper-3.4.6.tar.gz[[email protected]]#pwd/home/zookeeper/zookeeper-3.4.6[[email protected]]#新建目录:[[email protected]]#mk
Hbase和Zookeeper分开管理
Hbase和Zookeeper分开管理,第一步:编辑confhbase-envsh,找到HBASE_MANAGES_ZK,加入如下一行:exportHBASE_MANAGES_ZK=false,HBase,不自动维护Zookeeper。
CentOS7下配置Hadoop集群和Zookeeper集群
1.版本centos764位,VM虚拟机12.0,jdk1.8.0hadoop2.9.0zookeeper3.4.62.Hadoop集群的配置0.下载解压安装文件解压命令tar-xzvf压缩文件名文件夹路径1.修改hadoop-env.sh添加jdk环境exportJAVA_HOME=/usr/java/jdk1.8.0_144文...
docker overlay network 使用ZooKeeper
docker通常情况下使用的是bridge网络,这种无法进行跨主机通讯,即,一台主机上的docker容器是不能直接访问另一台主机上的容器的内部IP。如果我们想要通DNS
SpringCloud用Zookeeper搭建配置中心的方法
本篇文章主要介绍了SpringCloud用Zookeeper搭建配置中心的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
配置一个ZooKeeper伪分布式集群
配置一个ZooKeeper伪分布式集群,确定dataDir,创建目录,分别创建myid文件修改三份配置文件启动三个服务器。