diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java index 4de83b5..febc77f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java @@ -122,7 +122,7 @@ public class DefaultVisibilityLabelServiceImpl implements VisibilityLabelService Map labels = labelsAndUserAuths.getFirst(); Map> userAuths = labelsAndUserAuths.getSecond(); // Add the "system" label if it is not added into the system yet - addSystemLabel(this.labelsRegion, labels, userAuths); + addSystemLabelAndSuperUsers(this.labelsRegion, labels, userAuths); int ordinal = SYSTEM_LABEL_ORDINAL; // Ordinal 1 is reserved for "system" label. for (Integer i : labels.values()) { if (i > ordinal) { @@ -190,7 +190,7 @@ public class DefaultVisibilityLabelServiceImpl implements VisibilityLabelService return new Pair, Map>>(labels, userAuths); } - protected void addSystemLabel(HRegion region, Map labels, + protected void addSystemLabelAndSuperUsers(HRegion region, Map labels, Map> userAuths) throws IOException { if (!labels.containsKey(SYSTEM_LABEL)) { Put p = new Put(Bytes.toBytes(SYSTEM_LABEL_ORDINAL)); @@ -203,14 +203,15 @@ public class DefaultVisibilityLabelServiceImpl implements VisibilityLabelService } region.put(p); labels.put(SYSTEM_LABEL, SYSTEM_LABEL_ORDINAL); - for (String superUser : superUsers) { - List auths = userAuths.get(superUser); - if (auths == null) { - auths = new ArrayList(1); - userAuths.put(superUser, auths); - } - auths.add(SYSTEM_LABEL_ORDINAL); + } + List superUsers = getSystemAndSuperUsers(); + for (String superUser : superUsers) { + List auths = userAuths.get(superUser); + if (auths == null) { + auths = new ArrayList(1); + userAuths.put(superUser, auths); } + auths.add(SYSTEM_LABEL_ORDINAL); } }