@InterfaceAudience.Private public class ZKPermissionWatcher extends ZooKeeperListener
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.Modifier and Type | Field and Description |
---|---|
(package private) static String |
ACL_NODE |
(package private) String |
aclZNode |
(package private) TableAuthManager |
authManager |
(package private) CountDownLatch |
initialized |
private static org.apache.commons.logging.Log |
LOG |
watcher
Constructor and Description |
---|
ZKPermissionWatcher(ZooKeeperWatcher watcher,
TableAuthManager authManager,
org.apache.hadoop.conf.Configuration conf) |
Modifier and Type | Method and Description |
---|---|
void |
deleteNamespaceACLNode(String namespace)
Delete the acl notify node of namespace
|
void |
deleteTableACLNode(TableName tableName)
Delete the acl notify node of table
|
void |
nodeChildrenChanged(String path)
Called when an existing node has a child node added or removed.
|
void |
nodeCreated(String path)
Called when a new node has been created.
|
void |
nodeDataChanged(String path)
Called when an existing node has changed data.
|
void |
nodeDeleted(String path)
Called when a node has been deleted
|
private void |
refreshAuthManager(String entry,
byte[] nodeData) |
private void |
refreshNodes(List<ZKUtil.NodeAndData> nodes) |
void |
start() |
private void |
waitUntilStarted() |
void |
writeToZookeeper(byte[] entry,
byte[] permsData)
Write a table's access controls to the permissions mirror in zookeeper
|
getWatcher
private static final org.apache.commons.logging.Log LOG
static final String ACL_NODE
TableAuthManager authManager
String aclZNode
CountDownLatch initialized
public ZKPermissionWatcher(ZooKeeperWatcher watcher, TableAuthManager authManager, org.apache.hadoop.conf.Configuration conf)
public void start() throws org.apache.zookeeper.KeeperException
org.apache.zookeeper.KeeperException
private void waitUntilStarted()
public void nodeCreated(String path)
ZooKeeperListener
nodeCreated
in class ZooKeeperListener
path
- full path of the new nodepublic void nodeDeleted(String path)
ZooKeeperListener
nodeDeleted
in class ZooKeeperListener
path
- full path of the deleted nodepublic void nodeDataChanged(String path)
ZooKeeperListener
nodeDataChanged
in class ZooKeeperListener
path
- full path of the updated nodepublic void nodeChildrenChanged(String path)
ZooKeeperListener
nodeChildrenChanged
in class ZooKeeperListener
path
- full path of the node whose children have changedprivate void refreshNodes(List<ZKUtil.NodeAndData> nodes)
private void refreshAuthManager(String entry, byte[] nodeData) throws IOException
IOException
public void writeToZookeeper(byte[] entry, byte[] permsData)
entry
- permsData
- public void deleteTableACLNode(TableName tableName)
tableName
- public void deleteNamespaceACLNode(String namespace)
Copyright © 2007–2019 The Apache Software Foundation. All rights reserved.