This is an automated email from the ASF dual-hosted git repository.
zghao pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-2 by this push:
new cc127dd HBASE-22503 Failed to upgrade to 2.2+ as the global
permission which storaged in zk is not right
cc127dd is described below
commit cc127dd3257dc322e22715bae7c2a03ac6cb7d59
Author: Guanghao <[email protected]>
AuthorDate: Fri May 31 09:10:52 2019 +0800
HBASE-22503 Failed to upgrade to 2.2+ as the global permission which
storaged in zk is not right
---
.../java/org/apache/hadoop/hbase/security/access/AuthManager.java | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AuthManager.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AuthManager.java
index 5262036..3ced725 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AuthManager.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AuthManager.java
@@ -169,7 +169,13 @@ public final class AuthManager {
globalCache.clear();
for (String name : globalPerms.keySet()) {
for (Permission permission : globalPerms.get(name)) {
- globalCache.put(name, (GlobalPermission) permission);
+ // Before 2.2, the global permission which storage in zk is not right.
It was saved as a
+ // table permission. So here need to handle this for compatibility.
See HBASE-22503.
+ if (permission instanceof TablePermission) {
+ globalCache.put(name, new GlobalPermission(permission.getActions()));
+ } else {
+ globalCache.put(name, (GlobalPermission) permission);
+ }
}
}
mtime.incrementAndGet();