で飼育係のクライアント() -ネイティブクライアント、我々は、変更、検索やその他の操作に使用飼育係のクライアントノードの追加および削除を導入しましたが、そこを忘れないでくださいACLのアクセス制御を、我々は顧客飼育係の別の顔をして、ここで、ターミナルでは、ACL権限を使用してを制御するにはどうすればよいですか。
最初にサーバーに接続する必要があります。これは前のサーバーと同様です。1つの違いは、Zookeeperが直接接続するときに匿名の内部クラスを使用する代わりに、テストクラスが次のようにWatchインターフェイスを継承することです。
public class ZookeeperAclTest implements Watcher{
public static final String CONNECT_ADDR = "192.168.80.130:2181";
public static CountDownLatch countDownLatch = new CountDownLatch(1);
public static void main(String[] args) throws Exception {
ZooKeeper zooKeeper = new ZooKeeper(CONNECT_ADDR, 5000, new ZookeeperAclTest());
countDownLatch.await();
}
@Override
public void process(WatchedEvent event) {
if(event.getState() == Event.KeeperState.SyncConnected){
countDownLatch.countDown();
}
}
}
接続が完了したら、次のようにACLアクセス許可制御を実行できます。2つのアクセス許可を追加し、ノードの作成時にアクセス許可制御を与えます。
さらに、既存のノードについて、関連する権限を追加することもできます。ここでは、既存の/ node2に権限を追加し、次のようにその権限を出力します。
アクセスしたときに、権限がないことがわかりました。はい、/ node2ノードに権限を追加しました。アクセスするときは、アクセスする前に、現在のセッションの認証情報を登録する必要があります。
ここではsetAcl
、node / node2に権限を付与したばかりで、ここには権限なしで権限を付与する必要があるため、コマンドに注釈を付けることができます。または、セッション認証情報を上部に追加できます。