org.apache.hadoop.hbase.security.access
Class ZKPermissionWatcher
java.lang.Object
org.apache.hadoop.hbase.zookeeper.ZooKeeperListener
org.apache.hadoop.hbase.security.access.ZKPermissionWatcher
- All Implemented Interfaces:
- Closeable
@InterfaceAudience.Private
public class ZKPermissionWatcher
- extends ZooKeeperListener
- implements Closeable
Handles synchronization of access control list entries and updates
throughout all nodes in the cluster. The AccessController
instance
on the _acl_
table regions, creates a znode for each table as
/hbase/acl/tablename
, with the znode data containing a serialized
list of the permissions granted for the table. The AccessController
instances on all other cluster hosts watch the znodes for updates, which
trigger updates in the TableAuthManager
permission cache.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ZKPermissionWatcher
public ZKPermissionWatcher(ZooKeeperWatcher watcher,
TableAuthManager authManager,
org.apache.hadoop.conf.Configuration conf)
start
public void start()
throws org.apache.zookeeper.KeeperException
- Throws:
org.apache.zookeeper.KeeperException
close
public void close()
- Specified by:
close
in interface Closeable
nodeCreated
public void nodeCreated(String path)
- Overrides:
nodeCreated
in class ZooKeeperListener
nodeDeleted
public void nodeDeleted(String path)
- Overrides:
nodeDeleted
in class ZooKeeperListener
nodeDataChanged
public void nodeDataChanged(String path)
- Overrides:
nodeDataChanged
in class ZooKeeperListener
nodeChildrenChanged
public void nodeChildrenChanged(String path)
- Overrides:
nodeChildrenChanged
in class ZooKeeperListener
writeToZookeeper
public void writeToZookeeper(byte[] entry,
byte[] permsData)
- Write a table's access controls to the permissions mirror in zookeeper
- Parameters:
entry
- permsData
-
deleteTableACLNode
public void deleteTableACLNode(TableName tableName)
- Delete the acl notify node of table
- Parameters:
tableName
-
deleteNamespaceACLNode
public void deleteNamespaceACLNode(String namespace)
- Delete the acl notify node of namespace
Copyright © 2007-2016 The Apache Software Foundation. All Rights Reserved.