hbase git commit: Revert "HBASE-19970 Remove unused functions from TableAuthManager."

2018-02-20 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-1.4 af5cd4985 -> f2631371f


Revert "HBASE-19970 Remove unused functions from TableAuthManager."

This reverts commit e6ce789b6fa44592c3a566703c78de0687154a84.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f2631371
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f2631371
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f2631371

Branch: refs/heads/branch-1.4
Commit: f2631371fc3d8656247cd1355b34bfd7539a6bf6
Parents: af5cd49
Author: Michael Stack 
Authored: Tue Feb 20 11:12:36 2018 -0800
Committer: Michael Stack 
Committed: Tue Feb 20 11:13:55 2018 -0800

--
 .../security/access/AccessControlLists.java |   9 +-
 .../hbase/security/access/AccessController.java |   4 +-
 .../hbase/security/access/TableAuthManager.java |  75 
 .../security/access/TestTablePermissions.java   |   2 +-
 .../access/TestZKPermissionWatcher.java | 179 ---
 .../access/TestZKPermissionsWatcher.java| 178 ++
 6 files changed, 259 insertions(+), 188 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/f2631371/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index f508110..57c0f7b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -73,10 +73,6 @@ import org.apache.hadoop.io.Text;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
-import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.io.WritableFactories;
-import org.apache.hadoop.io.WritableUtils;
-import org.apache.jasper.tagplugins.jstl.core.Remove;
 
 /**
  * Maintains lists of permission grants to users and groups to allow for
@@ -671,7 +667,8 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms,
+  Configuration conf) {
 return 
ProtobufUtil.prependPBMagic(ProtobufUtil.toUserTablePermissions(perms).toByteArray());
   }
 
@@ -758,7 +755,7 @@ public class AccessControlLists {
  // Deserialize the table permissions from the KV
  // TODO: This can be improved. Don't build UsersAndPermissions just 
to unpack it again,
  // use the builder
- AccessControlProtos.UsersAndPermissions.Builder builder =
+ AccessControlProtos.UsersAndPermissions.Builder builder = 
AccessControlProtos.UsersAndPermissions.newBuilder();
  ProtobufUtil.mergeFrom(builder, tag.getBuffer(), tag.getTagOffset(), 
tag.getTagLength());
  ListMultimap kvPerms =

http://git-wip-us.apache.org/repos/asf/hbase/blob/f2631371/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index c889a3e..fd0a704 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -243,7 +243,7 @@ public class AccessController extends 
BaseMasterAndRegionObserver
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -275,7 +275,7 @@ public class AccessController extends 
BaseMasterAndRegionObserver
 try (Table t = regionEnv.getTable(AccessControlLists.ACL_TABLE_NAME)) {
   ListMultimap perms =
   AccessControlLists.getPermissions(conf, entry, t);
-  byte[] serialized = 
AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = 
AccessControlLists.writePermissionsAsBytes(perms, conf);
   zkw.writeToZookeeper(entry, serialized);
 }
   } c

[2/2] hbase git commit: Revert "HBASE-19970 Remove unused functions from TableAuthManager."

2018-02-20 Thread stack
Revert "HBASE-19970 Remove unused functions from TableAuthManager."

This reverts commit e6ce789b6fa44592c3a566703c78de0687154a84.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/fd8189d3
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/fd8189d3
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/fd8189d3

Branch: refs/heads/branch-1
Commit: fd8189d31d900896a93db2d9c08303f3dedc1dd8
Parents: 071281c
Author: Michael Stack 
Authored: Tue Feb 20 11:12:36 2018 -0800
Committer: Michael Stack 
Committed: Tue Feb 20 11:12:36 2018 -0800

--
 .../security/access/AccessControlLists.java |   9 +-
 .../hbase/security/access/AccessController.java |   4 +-
 .../hbase/security/access/TableAuthManager.java |  75 
 .../security/access/TestTablePermissions.java   |   2 +-
 .../access/TestZKPermissionWatcher.java | 179 ---
 .../access/TestZKPermissionsWatcher.java| 178 ++
 6 files changed, 259 insertions(+), 188 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/fd8189d3/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index f508110..57c0f7b 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -73,10 +73,6 @@ import org.apache.hadoop.io.Text;
 import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
-import org.apache.hadoop.io.Writable;
-import org.apache.hadoop.io.WritableFactories;
-import org.apache.hadoop.io.WritableUtils;
-import org.apache.jasper.tagplugins.jstl.core.Remove;
 
 /**
  * Maintains lists of permission grants to users and groups to allow for
@@ -671,7 +667,8 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms,
+  Configuration conf) {
 return 
ProtobufUtil.prependPBMagic(ProtobufUtil.toUserTablePermissions(perms).toByteArray());
   }
 
@@ -758,7 +755,7 @@ public class AccessControlLists {
  // Deserialize the table permissions from the KV
  // TODO: This can be improved. Don't build UsersAndPermissions just 
to unpack it again,
  // use the builder
- AccessControlProtos.UsersAndPermissions.Builder builder =
+ AccessControlProtos.UsersAndPermissions.Builder builder = 
AccessControlProtos.UsersAndPermissions.newBuilder();
  ProtobufUtil.mergeFrom(builder, tag.getBuffer(), tag.getTagOffset(), 
tag.getTagLength());
  ListMultimap kvPerms =

http://git-wip-us.apache.org/repos/asf/hbase/blob/fd8189d3/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index c889a3e..fd0a704 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -243,7 +243,7 @@ public class AccessController extends 
BaseMasterAndRegionObserver
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -275,7 +275,7 @@ public class AccessController extends 
BaseMasterAndRegionObserver
 try (Table t = regionEnv.getTable(AccessControlLists.ACL_TABLE_NAME)) {
   ListMultimap perms =
   AccessControlLists.getPermissions(conf, entry, t);
-  byte[] serialized = 
AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = 
AccessControlLists.writePermissionsAsBytes(perms, conf);
   zkw.writeToZookeeper(entry, serialized);
 }
   } catch (IOException ex) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/fd8189d3/hba

[12/30] hbase git commit: Revert "HBASE-19970 Remove unused functions from TableAuthManager."

2018-02-14 Thread zhangduo
Revert "HBASE-19970 Remove unused functions from TableAuthManager."

This reverts commit 7cc239fb5ac0ce3f22d93d1dbf7e80609427710a.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ba402b1e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ba402b1e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ba402b1e

Branch: refs/heads/HBASE-19064
Commit: ba402b1e7b446144d4d20f90cb71e6aa19ecce3c
Parents: 2f48fdb
Author: Michael Stack 
Authored: Tue Feb 13 06:19:08 2018 -0800
Committer: Michael Stack 
Committed: Tue Feb 13 06:19:08 2018 -0800

--
 .../security/access/AccessControlLists.java |  3 +-
 .../hbase/security/access/AccessController.java |  6 +-
 .../hbase/security/access/TableAuthManager.java | 75 
 .../security/access/TestTablePermissions.java   |  2 +-
 .../access/TestZKPermissionWatcher.java | 55 +++---
 5 files changed, 108 insertions(+), 33 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/ba402b1e/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index 663d0c5..b0f33bd 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -644,7 +644,8 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms,
+  Configuration conf) {
 return 
ProtobufUtil.prependPBMagic(AccessControlUtil.toUserTablePermissions(perms).toByteArray());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/ba402b1e/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index 3ac92b8..1fbf01d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -247,7 +247,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -284,7 +284,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
 currentEntry = entry;
 ListMultimap perms =
 AccessControlLists.getPermissions(conf, entry, t);
-byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
 zkw.writeToZookeeper(entry, serialized);
   }
 } catch(IOException ex) {
@@ -2456,7 +2456,7 @@ public class AccessController implements 
MasterCoprocessor, RegionCoprocessor,
   throws IOException {
 requirePermission(ctx, "replicateLogEntries", Action.WRITE);
   }
-
+  
   @Override
   public void  
preClearCompactionQueues(ObserverContext 
ctx)
   throws IOException {

http://git-wip-us.apache.org/repos/asf/hbase/blob/ba402b1e/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
index fdfd5c8..76feff4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
@@ -656,6 +656,81 @@ public class TableAuthManager implements Closeable {
 tableCache.remove(table);
   }
 
+  /**
+   * Overwrites the existing permission set for a given user for a table, and
+   * triggers an update for zookeeper synchronization.

hbase git commit: Revert "HBASE-19970 Remove unused functions from TableAuthManager."

2018-02-13 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/master 2f48fdbb2 -> ba402b1e7


Revert "HBASE-19970 Remove unused functions from TableAuthManager."

This reverts commit 7cc239fb5ac0ce3f22d93d1dbf7e80609427710a.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/ba402b1e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/ba402b1e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/ba402b1e

Branch: refs/heads/master
Commit: ba402b1e7b446144d4d20f90cb71e6aa19ecce3c
Parents: 2f48fdb
Author: Michael Stack 
Authored: Tue Feb 13 06:19:08 2018 -0800
Committer: Michael Stack 
Committed: Tue Feb 13 06:19:08 2018 -0800

--
 .../security/access/AccessControlLists.java |  3 +-
 .../hbase/security/access/AccessController.java |  6 +-
 .../hbase/security/access/TableAuthManager.java | 75 
 .../security/access/TestTablePermissions.java   |  2 +-
 .../access/TestZKPermissionWatcher.java | 55 +++---
 5 files changed, 108 insertions(+), 33 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/ba402b1e/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index 663d0c5..b0f33bd 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -644,7 +644,8 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms,
+  Configuration conf) {
 return 
ProtobufUtil.prependPBMagic(AccessControlUtil.toUserTablePermissions(perms).toByteArray());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/ba402b1e/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index 3ac92b8..1fbf01d 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -247,7 +247,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -284,7 +284,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
 currentEntry = entry;
 ListMultimap perms =
 AccessControlLists.getPermissions(conf, entry, t);
-byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
 zkw.writeToZookeeper(entry, serialized);
   }
 } catch(IOException ex) {
@@ -2456,7 +2456,7 @@ public class AccessController implements 
MasterCoprocessor, RegionCoprocessor,
   throws IOException {
 requirePermission(ctx, "replicateLogEntries", Action.WRITE);
   }
-
+  
   @Override
   public void  
preClearCompactionQueues(ObserverContext 
ctx)
   throws IOException {

http://git-wip-us.apache.org/repos/asf/hbase/blob/ba402b1e/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
index fdfd5c8..76feff4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
@@ -656,6 +656,81 @@ public class TableAuthManager implements Closeable {
 tableCache.remove(table);
   }
 
+  /**
+   * Overwrites the existing permission set for a given us

hbase git commit: Revert "HBASE-19970 Remove unused functions from TableAuthManager."

2018-02-13 Thread stack
Repository: hbase
Updated Branches:
  refs/heads/branch-2 6923472f7 -> 562402ec2


Revert "HBASE-19970 Remove unused functions from TableAuthManager."

This reverts commit b19531f04b2fd7178d8152068b8782e829b697ac.


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/562402ec
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/562402ec
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/562402ec

Branch: refs/heads/branch-2
Commit: 562402ec233dc847acacc42eca7fb14e06fe6f3e
Parents: 6923472
Author: Michael Stack 
Authored: Tue Feb 13 06:17:10 2018 -0800
Committer: Michael Stack 
Committed: Tue Feb 13 06:18:35 2018 -0800

--
 .../security/access/AccessControlLists.java |  3 +-
 .../hbase/security/access/AccessController.java |  4 +-
 .../hbase/security/access/TableAuthManager.java | 75 
 .../security/access/TestTablePermissions.java   |  2 +-
 .../access/TestZKPermissionWatcher.java | 55 +++---
 5 files changed, 107 insertions(+), 32 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hbase/blob/562402ec/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
index 663d0c5..b0f33bd 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessControlLists.java
@@ -644,7 +644,8 @@ public class AccessControlLists {
*
* Writes a set of permission [user: table permission]
*/
-  public static byte[] writePermissionsAsBytes(ListMultimap perms) {
+  public static byte[] writePermissionsAsBytes(ListMultimap perms,
+  Configuration conf) {
 return 
ProtobufUtil.prependPBMagic(AccessControlUtil.toUserTablePermissions(perms).toByteArray());
   }
 

http://git-wip-us.apache.org/repos/asf/hbase/blob/562402ec/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
index 578cc4d..3a4bf82 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java
@@ -246,7 +246,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
   tables.entrySet()) {
   byte[] entry = t.getKey();
   ListMultimap perms = t.getValue();
-  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+  byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
   getAuthManager().getZKPermissionWatcher().writeToZookeeper(entry, 
serialized);
 }
 initialized = true;
@@ -283,7 +283,7 @@ public class AccessController implements MasterCoprocessor, 
RegionCoprocessor,
 currentEntry = entry;
 ListMultimap perms =
 AccessControlLists.getPermissions(conf, entry, t);
-byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms);
+byte[] serialized = AccessControlLists.writePermissionsAsBytes(perms, 
conf);
 zkw.writeToZookeeper(entry, serialized);
   }
 } catch(IOException ex) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/562402ec/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
--
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
index fdfd5c8..76feff4 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/TableAuthManager.java
@@ -656,6 +656,81 @@ public class TableAuthManager implements Closeable {
 tableCache.remove(table);
   }
 
+  /**
+   * Overwrites the existing permission set for a given user for a table, and
+   * triggers an update for zookeeper synchronization.
+   * @param username
+   * @param table
+   * @param perms
+   */
+  public void setTableUserPermissions(String username, TableName table,
+  List perms) {
+PermissionCache tablePerms = getTablePermissions(table);
+tablePer