zookeeper java调用及权限控制

import java.io.IOException;

import java.security.NoSuchAlgorithmException;

import java.util.ArrayList;

import java.util.List;

import org.apache.zookeeper.CreateMode;

import org.apache.zookeeper.KeeperException;

import org.apache.zookeeper.WatchedEvent;

import org.apache.zookeeper.Watcher;

import org.apache.zookeeper.ZooDefs;

import org.apache.zookeeper.ZooDefs.Ids;

import org.apache.zookeeper.ZooKeeper;

import org.apache.zookeeper.data.ACL;

import org.apache.zookeeper.data.Id;

import org.apache.zookeeper.server.auth.DigestAuthenticationProvider;

/**

* @author Keeny (2013-12-31)

**/

public class Test {

public static void main(String[] args) throws IOException, KeeperException, InterruptedException, NoSuchAlgorithmException {

ZooKeeper zk = new ZooKeeper("192.168.192.142:2181", 500000, new Watcher() {

// 监控所有被触发的事件

public void process(WatchedEvent event) {

System.out.println("WatchedEvent=" + event.toString());

// dosomething

}

});

// 创建一个节点root,数据是mydata,不进行ACL权限控制,节点为永久性的(即客户端shutdown了也不会消失)

List<ACL> acls = new ArrayList<ACL>(2);

Id id1 = new Id("digest", DigestAuthenticationProvider.generateDigest("admin:admin123"));

ACL acl1 = new ACL(ZooDefs.Perms.ALL, id1);

Id id2 = new Id("digest", DigestAuthenticationProvider.generateDigest("guest:guest123"));

ACL acl2 = new ACL(ZooDefs.Perms.READ, id2);

acls.add(acl1);

acls.add(acl2);  //设置权限

//        String root = zk.create("/root/test1", "test".getBytes(), acls, CreateMode.PERSISTENT);

//        System.out.println("root=" + root);

// 在root下面创建一个childone znode,数据为childone,不进行ACL权限控制,节点为永久性的

// String childone = zk.create("/root/childone", "childone".getBytes(),

// Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);

// System.out.println("childone=" + childone);

// 取得/root节点下的子节点名称,返回List<String>

zk.addAuthInfo("digest", "admin:chinatetadmin1234".getBytes());   //设置权限

List<String> lsit = zk.getChildren("/root", true);

for (String string : lsit) {

System.out.println("节点:" + string);

}

// 取得/root/childone节点下的数据,返回byte[]

byte[] childoneData = zk.getData("/root/msg", true, null);

System.out.println("childoneData=" + new String(childoneData));

// 修改节点/root/childone下的数据,第三个参数为版本,如果是-1,那会无视被修改的数据版本,直接改掉

// zk.setData("/root/childone", "childonemodify".getBytes(), -1);

//         删除/root/childone这个节点,第二个参数为版本,-1的话直接删除,无视版本

//         zk.delete("/root/msg", -1);

//

// zk.delete("/root/msg", -1);

// 关闭session

zk.close();

}

}

zookeeper java调用及权限控制

时间: 2024-11-03 21:35:19

zookeeper java调用及权限控制的相关文章

Java 訪问权限控制:你真的了解 protected keyword吗?

摘要: 在一个类的内部,其成员(包含成员变量和成员方法)是否能被其它类所訪问,取决于该成员的修饰词:而一个类是否能被其它类所訪问,取决于该类的修饰词.Java的类成员訪问权限修饰词有四类:private,无(默认情况下.包訪问权限),protected 和 public,而当中仅仅有包訪问权限和public才干修饰一个类(内部类除外).特别地,非常多的介绍Java的书籍对protected介绍的比較笼统,经常会对大家造成误解. 因此,本文重点揭示了 protected 关键字的内涵和使用方法,并

WebService实例&amp;调用本质&amp;权限控制

这里首先做一个用CXF开发WebService的实例.然后介绍WebService的调用本质与权限控制. 一.    实例 1.1        下载apache-cxf 地址如下:http://cxf.apache.org/download.html,要下载稳定版. 1.2        使用CXF开发WebService服务端 每个WebService组件需要2个部分,接口和实现类.开发一个WebService组件,一般需要三个步骤: ?  开发一个WebService业务接口,该接口要用@

Thinking in java Chapter6 访问权限控制

访问权限控制的等级,从最大权限到最小权限:public proteced 包访问权限 private 6.1 包:库单元 public class FullQualification { public static void main(String[] args) { java.util.ArrayList list = new java.util.ArrayList<>(); } } import java.util.ArrayList; public class SingleImport

java web访问权限控制

权限管理有很多种方式,这里我总结一种相对较容易理解的权限控制方式. 也就是用户对应角色,角色对应功能模块 例如你的功能包括商城.活动.优惠券这几大模块,对应的就是存储相应模块下有想应权限的用户id 某个模块对应的具有权限的用户id 操作: 访问时判断用户是否存在该模块对应的用户列表中,存在则说明有权限 该模块下对应的功能如果需要再细分,则以类型的形式设置访问权限.

[think in java] 知识点-访问权限控制

在java中,数组是以引用的形式传递的. 如果没有定义toString()方法的话,打印行为打印的是类的名字和对象的地址.  如:[email protected] 每个编译单元内只能有一个public类.虽然不常用,当编译单元内完全不带public类也是可能的.在这种情况下,可以随意对文件命名. 在java中,如果使用package语句,它必须是注释以外的第一句程序. 如果不提供任何访问权限,则意味者它是"包访问权限".默认访问权限没有任何关键字,但通常是指"包访问权限&q

论Java访问权限控制的重要性

人在什么面前最容易失去抵抗力? 美色,算是一个,比如说西施的贡献薄就是忍辱负重.以身报国.助越灭吴:金钱,算是另外一个,我们古人常说"钱乃身外之物,生不带来死不带去",但我们又都知道"有钱能使鬼推磨". 除去美色和金钱,我认为还有一个,就是读者的认可--"二哥,你的文章真的很棒,我特别喜欢.希望能多多更新Java基础知识,真的是受益良多,就好像是在读王小波的散文,但又学了编程!"--你说,收到读者这样暖暖的评语,还需要美色和金钱?"两者

Java web自定义标签按钮级别权限控制完美诠释(jplogic 快速开发平台)

接下来跟大家聊聊JavaWeb中权限控制,往大的方向说可以聊聊整合应用系统中的权限控制.在聊权限控制之前先跟大家聊聊RBAC.那么什么是RBAC呢?RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联的,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理.在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色.角色可依新的需求和系统的

Linux (七)权限控制

1. 概述 Linux需要对登录用户读写执行文件.进入目录.查看增删目录内容等操作进行控制,不能任由用户随意执行所有操作. 我们从如下几个方面来认识Linux权限控制体系: 用户管理 用户组管理 文件权限信息 chmod.chgrp.chown命令 2.用户和用户组 所谓用户其实就是登录Linux系统时使用的账号.而用户组则是把相同权限的用户归纳到同一个组内以便于管理,类似于Java开发中权限控制体系里面“角色”的概念. 当我们创建一个账号时如果没有指定属于哪一个用户组,那么Linux就会自动创

Java 访问权限控制:你真的了解 protected 关键字吗?

摘要: 在一个类的内部,其成员(包括成员变量和成员方法)能否被其他类所访问,取决于该成员的修饰词:而一个类能否被其他类所访问,取决于该类的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下,包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外).特别地,很多的介绍Java的书籍对protected介绍的比较笼统,常常会对大家造成误解.因此,本文重点揭示了 protected 关键字的内涵和用法,并介绍了一些其他