Java 类org.apache.hadoop.hbase.security.access.AccessControlLists 实例源码

项目:ditb    文件:TestSecureLoadIncrementalHFiles.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  util.getConfiguration().setInt(
      LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
      MAX_FILES_PER_REGION_PER_FAMILY);
  // change default behavior so that tag values are returned with normal rpcs
  util.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,
      KeyValueCodecWithTags.class.getCanonicalName());

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);

  setupNamespace();
}
项目:ditb    文件:TestSecureExportSnapshot.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  setUpBaseConf(TEST_UTIL.getConfiguration());

  // set the always on security provider
  UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  // setup configuration
  SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());

  TEST_UTIL.startMiniCluster(3);
  TEST_UTIL.startMiniMapReduceCluster();

  // Wait for the ACL table to become available
  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:pbase    文件:VisibilityUtils.java   
/**
 * Get the super users and groups defined in the configuration.
 * The user running the hbase server is always included.
 * @param conf
 * @return Pair of super user list and super group list.
 * @throws IOException
 */
public static Pair<List<String>, List<String>> getSystemAndSuperUsers(Configuration conf)
    throws IOException {
  ArrayList<String> superUsers = new ArrayList<String>();
  ArrayList<String> superGroups = new ArrayList<String>();
  User user = User.getCurrent();
  if (user == null) {
    throw new IOException("Unable to obtain the current user, "
        + "authorization checks for internal operations will not work correctly!");
  }
  if (LOG.isTraceEnabled()) {
    LOG.trace("Current user name is " + user.getShortName());
  }
  String currentUser = user.getShortName();
  String[] superUserList = conf.getStrings(AccessControlLists.SUPERUSER_CONF_KEY, new String[0]);
  for (String name : superUserList) {
    if (AccessControlLists.isGroupPrincipal(name)) {
      superGroups.add(AccessControlLists.getGroupName(name));
    } else {
      superUsers.add(name);
    }
  }
  superUsers.add(currentUser);
  return new Pair<List<String>, List<String>>(superUsers, superGroups);
}
项目:pbase    文件:ExpAsStringVisibilityLabelServiceImpl.java   
private void initSystemAndSuperUsers() throws IOException {
  this.superUsers = new ArrayList<String>();
  this.superGroups = new ArrayList<String>();
  User user = User.getCurrent();
  if (user == null) {
    throw new IOException("Unable to obtain the current user, "
        + "authorization checks for internal operations will not work correctly!");
  }
  if (LOG.isTraceEnabled()) {
    LOG.trace("Current user name is " + user.getShortName());
  }
  String currentUser = user.getShortName();
  List<String> superUserList = Lists.asList(currentUser,
      this.conf.getStrings(AccessControlLists.SUPERUSER_CONF_KEY, new String[0]));
  if (superUserList != null) {
    for (String name : superUserList) {
      if (AccessControlLists.isGroupPrincipal(name)) {
        this.superGroups.add(AccessControlLists.getGroupName(name));
      } else {
        this.superUsers.add(name);
      }
    }
  };
}
项目:pbase    文件:TestSecureLoadIncrementalHFiles.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  util.getConfiguration().setInt(
      LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
      MAX_FILES_PER_REGION_PER_FAMILY);

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);

  setupNamespace();
}
项目:pbase    文件:TestSecureExportSnapshot.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  setUpBaseConf(TEST_UTIL.getConfiguration());

  // set the always on security provider
  UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  // setup configuration
  SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());

  TEST_UTIL.startMiniCluster(3);
  TEST_UTIL.startMiniMapReduceCluster();

  // Wait for the ACL table to become available
  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:HIndex    文件:TestSecureLoadIncrementalHFiles.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  util.getConfiguration().setInt(
      LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
      MAX_FILES_PER_REGION_PER_FAMILY);

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName());
}
项目:HIndex    文件:TestSecureExportSnapshot.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  setUpBaseConf(TEST_UTIL.getConfiguration());

  // set the always on security provider
  UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  // setup configuration
  SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());

  TEST_UTIL.startMiniCluster(3);
  TEST_UTIL.startMiniMapReduceCluster();

  // Wait for the ACL table to become available
  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName());
}
项目:IRIndex    文件:TestAccessController.java   
@Test
public void testTableDisable() throws Exception {
  PrivilegedExceptionAction disableTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
        TEST_TABLE);
      return null;
    }
  };

  PrivilegedExceptionAction disableAclTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
          AccessControlLists.ACL_TABLE_NAME);
      return null;
    }
  };

  verifyAllowed(disableTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER);
  verifyDenied(disableTable, USER_RW, USER_RO, USER_NONE);

  // No user should be allowed to disable _acl_ table
  verifyDenied(disableAclTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER, USER_RW, USER_RO);
}
项目:hbase    文件:TestSecureExport.java   
/**
 * Sets the security firstly for getting the correct default realm.
 * @throws Exception
 */
@BeforeClass
public static void beforeClass() throws Exception {
  UserProvider.setUserProviderForTesting(UTIL.getConfiguration(), HadoopSecurityEnabledUserProviderForTesting.class);
  setUpKdcServer();
  SecureTestUtil.enableSecurity(UTIL.getConfiguration());
  UTIL.getConfiguration().setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);
  VisibilityTestUtil.enableVisiblityLabels(UTIL.getConfiguration());
  SecureTestUtil.verifyConfiguration(UTIL.getConfiguration());
  setUpClusterKdc();
  UTIL.startMiniCluster();
  UTIL.waitUntilAllRegionsAssigned(AccessControlLists.ACL_TABLE_NAME);
  UTIL.waitUntilAllRegionsAssigned(VisibilityConstants.LABELS_TABLE_NAME);
  UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME, 50000);
  UTIL.waitTableEnabled(VisibilityConstants.LABELS_TABLE_NAME, 50000);
  SecureTestUtil.grantGlobal(UTIL, USER_ADMIN,
          Permission.Action.ADMIN,
          Permission.Action.CREATE,
          Permission.Action.EXEC,
          Permission.Action.READ,
          Permission.Action.WRITE);
  addLabels(UTIL.getConfiguration(), Arrays.asList(USER_OWNER),
          Arrays.asList(PRIVATE, CONFIDENTIAL, SECRET, TOPSECRET));
}
项目:hbase    文件:TestSecureLoadIncrementalHFiles.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  util.getConfiguration().setInt(LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
    MAX_FILES_PER_REGION_PER_FAMILY);
  // change default behavior so that tag values are returned with normal rpcs
  util.getConfiguration().set(HConstants.RPC_CODEC_CONF_KEY,
    KeyValueCodecWithTags.class.getCanonicalName());

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);

  setupNamespace();
}
项目:hbase    文件:TestSnapshotWithAcl.java   
@BeforeClass
public static void setupBeforeClass() throws Exception {
  conf = TEST_UTIL.getConfiguration();
  // Enable security
  enableSecurity(conf);
  conf.set(CoprocessorHost.REGION_COPROCESSOR_CONF_KEY, AccessController.class.getName());
  // Verify enableSecurity sets up what we require
  verifyConfiguration(conf);
  // Enable EXEC permission checking
  conf.setBoolean(AccessControlConstants.EXEC_PERMISSION_CHECKS_KEY, true);
  TEST_UTIL.startMiniCluster();
  TEST_UTIL.waitUntilAllRegionsAssigned(AccessControlLists.ACL_TABLE_NAME);
  MasterCoprocessorHost cpHost =
      TEST_UTIL.getMiniHBaseCluster().getMaster().getMasterCoprocessorHost();
  cpHost.load(AccessController.class, Coprocessor.PRIORITY_HIGHEST, conf);

  USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);
  USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);
  USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);
  USER_NONE = User.createUserForTesting(conf, "usernone", new String[0]);
}
项目:hbase    文件:TestMobSecureExportSnapshot.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  setUpBaseConf(TEST_UTIL.getConfiguration());
  // Setup separate test-data directory for MR cluster and set corresponding configurations.
  // Otherwise, different test classes running MR cluster can step on each other.
  TEST_UTIL.getDataTestDir();

  // set the always on security provider
  UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  // setup configuration
  SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());

  TEST_UTIL.startMiniCluster(1, 3);
  TEST_UTIL.startMiniMapReduceCluster();

  // Wait for the ACL table to become available
  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:hbase    文件:TestSecureExportSnapshot.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  setUpBaseConf(TEST_UTIL.getConfiguration());
  // Setup separate test-data directory for MR cluster and set corresponding configurations.
  // Otherwise, different test classes running MR cluster can step on each other.
  TEST_UTIL.getDataTestDir();

  // set the always on security provider
  UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  // setup configuration
  SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());

  TEST_UTIL.startMiniCluster(1, 3);
  TEST_UTIL.startMiniMapReduceCluster();

  // Wait for the ACL table to become available
  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:PyroDB    文件:TestSecureLoadIncrementalHFiles.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  util.getConfiguration().setInt(
      LoadIncrementalHFiles.MAX_FILES_PER_REGION_PER_FAMILY,
      MAX_FILES_PER_REGION_PER_FAMILY);

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName());
}
项目:PyroDB    文件:TestSecureExportSnapshot.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  setUpBaseConf(TEST_UTIL.getConfiguration());

  // set the always on security provider
  UserProvider.setUserProviderForTesting(TEST_UTIL.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  // setup configuration
  SecureTestUtil.enableSecurity(TEST_UTIL.getConfiguration());

  TEST_UTIL.startMiniCluster(3);
  TEST_UTIL.startMiniMapReduceCluster();

  // Wait for the ACL table to become available
  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName());
}
项目:c5    文件:NamespaceUpgrade.java   
/**
 * Deletes the old _acl_ entry, and inserts a new one using namespace.
 * @param region
 * @throws IOException
 */
private void updateAcls(HRegion region) throws IOException {
  byte[] rowKey = Bytes.toBytes(NamespaceUpgrade.OLD_ACL);
  // get the old _acl_ entry, if present.
  Get g = new Get(rowKey);
  Result r = region.get(g);
  if (r == null || r.size() == 0) return;
  // create a put for new _acl_ entry with rowkey as hbase:acl
  Put p = new Put(AccessControlLists.ACL_GLOBAL_NAME);
  for (Cell c : r.rawCells()) {
    p.addImmutable(CellUtil.cloneFamily(c), CellUtil.cloneQualifier(c), CellUtil.cloneValue(c));
  }
  region.put(p);
  // delete the old entry
  Delete del = new Delete(rowKey);
  region.delete(del);
}
项目:HBase-Research    文件:TestAccessController.java   
@Test
public void testTableDisable() throws Exception {
  PrivilegedExceptionAction disableTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
        TEST_TABLE);
      return null;
    }
  };

  PrivilegedExceptionAction disableAclTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
          AccessControlLists.ACL_TABLE_NAME);
      return null;
    }
  };

  verifyAllowed(disableTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER);
  verifyDenied(disableTable, USER_RW, USER_RO, USER_NONE);

  // No user should be allowed to disable _acl_ table
  verifyDenied(disableAclTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER, USER_RW, USER_RO);
}
项目:hbase-0.94.8-qod    文件:TestAccessController.java   
@Test
public void testTableDisable() throws Exception {
  PrivilegedExceptionAction disableTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
        TEST_TABLE);
      return null;
    }
  };

  PrivilegedExceptionAction disableAclTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
          AccessControlLists.ACL_TABLE_NAME);
      return null;
    }
  };

  verifyAllowed(disableTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER);
  verifyDenied(disableTable, USER_RW, USER_RO, USER_NONE);

  // No user should be allowed to disable _acl_ table
  verifyDenied(disableAclTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER, USER_RW, USER_RO);
}
项目:hbase-0.94.8-qod    文件:TestAccessController.java   
@Test
public void testTableDisable() throws Exception {
  PrivilegedExceptionAction disableTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
        TEST_TABLE);
      return null;
    }
  };

  PrivilegedExceptionAction disableAclTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
          AccessControlLists.ACL_TABLE_NAME);
      return null;
    }
  };

  verifyAllowed(disableTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER);
  verifyDenied(disableTable, USER_RW, USER_RO, USER_NONE);

  // No user should be allowed to disable _acl_ table
  verifyDenied(disableAclTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER, USER_RW, USER_RO);
}
项目:hindex    文件:TestAccessController.java   
@Test
public void testTableDisable() throws Exception {
  PrivilegedExceptionAction disableTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
        TEST_TABLE);
      return null;
    }
  };

  PrivilegedExceptionAction disableAclTable = new PrivilegedExceptionAction() {
    public Object run() throws Exception {
      ACCESS_CONTROLLER.preDisableTable(ObserverContext.createAndPrepare(CP_ENV, null),
          AccessControlLists.ACL_TABLE_NAME);
      return null;
    }
  };

  verifyAllowed(disableTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER);
  verifyDenied(disableTable, USER_RW, USER_RO, USER_NONE);

  // No user should be allowed to disable _acl_ table
  verifyDenied(disableAclTable, SUPERUSER, USER_ADMIN, USER_CREATE, USER_OWNER, USER_RW, USER_RO);
}
项目:ditb    文件:TestVisibilityLabelsWithACL.java   
@BeforeClass
public static void setupBeforeClass() throws Exception {
  // setup configuration
  conf = TEST_UTIL.getConfiguration();
  conf.setInt(HConstants.REGION_SERVER_HIGH_PRIORITY_HANDLER_COUNT, 10);
  SecureTestUtil.enableSecurity(conf);
  conf.set("hbase.coprocessor.master.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  conf.set("hbase.coprocessor.region.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  TEST_UTIL.startMiniCluster(2);

  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName(), 50000);
  // Wait for the labels table to become available
  TEST_UTIL.waitTableEnabled(LABELS_TABLE_NAME.getName(), 50000);
  addLabels();

  // Create users for testing
  SUPERUSER = User.createUserForTesting(conf, "admin", new String[] { "supergroup" });
  NORMAL_USER1 = User.createUserForTesting(conf, "user1", new String[] {});
  NORMAL_USER2 = User.createUserForTesting(conf, "user2", new String[] {});
  // Grant users EXEC privilege on the labels table. For the purposes of this
  // test, we want to insure that access is denied even with the ability to access
  // the endpoint.
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER1.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER2.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
}
项目:ditb    文件:TestSecureLoadIncrementalHFilesSplitRecovery.java   
@BeforeClass
public static void setupCluster() throws Exception {
  util = new HBaseTestingUtility();
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:pbase    文件:DefaultVisibilityLabelServiceImpl.java   
@Override
public List<String> getGroupAuths(String[] groups, boolean systemCall)
    throws IOException {
  assert (labelsRegion != null || systemCall);
  if (systemCall || labelsRegion == null) {
    return this.labelsCache.getGroupAuths(groups);
  }
  Scan s = new Scan();
  if (groups != null && groups.length > 0) {
    for (String group : groups) {
      s.addColumn(LABELS_TABLE_FAMILY, Bytes.toBytes(AccessControlLists.toGroupEntry(group)));
    }
  }
  Filter filter = VisibilityUtils.createVisibilityLabelFilter(this.labelsRegion,
      new Authorizations(SYSTEM_LABEL));
  s.setFilter(filter);
  Set<String> auths = new HashSet<String>();
  RegionScanner scanner = this.labelsRegion.getScanner(s);
  try {
    List<Cell> results = new ArrayList<Cell>(1);
    while (true) {
      scanner.next(results);
      if (results.isEmpty()) break;
      Cell cell = results.get(0);
      int ordinal = Bytes.toInt(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength());
      String label = this.labelsCache.getLabel(ordinal);
      if (label != null) {
        auths.add(label);
      }
      results.clear();
    }
  } finally {
    scanner.close();
  }
  return new ArrayList<String>(auths);
}
项目:pbase    文件:ExpAsStringVisibilityLabelServiceImpl.java   
@Override
public List<String> getGroupAuths(String[] groups, boolean systemCall) throws IOException {
  assert (labelsRegion != null || systemCall);
  List<String> auths = new ArrayList<String>();
  if (groups != null && groups.length > 0) {
    for (String group : groups) {
      Get get = new Get(Bytes.toBytes(AccessControlLists.toGroupEntry(group)));
      List<Cell> cells = null;
      if (labelsRegion == null) {
        Table table = null;
        try {
          table = new HTable(conf, VisibilityConstants.LABELS_TABLE_NAME);
          Result result = table.get(get);
          cells = result.listCells();
        } finally {
          if (table != null) {
            table.close();
          }
        }
      } else {
        cells = this.labelsRegion.get(get, false);
      }
      if (cells != null) {
        for (Cell cell : cells) {
          String auth = Bytes.toString(cell.getQualifierArray(), cell.getQualifierOffset(),
            cell.getQualifierLength());
          auths.add(auth);
        }
      }
    }
  }
  return auths;
}
项目:pbase    文件:TestVisibilityLabelsWithACL.java   
@BeforeClass
public static void setupBeforeClass() throws Exception {
  // setup configuration
  conf = TEST_UTIL.getConfiguration();
  SecureTestUtil.enableSecurity(conf);
  conf.set("hbase.coprocessor.master.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  conf.set("hbase.coprocessor.region.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  TEST_UTIL.startMiniCluster(2);

  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName(), 50000);
  // Wait for the labels table to become available
  TEST_UTIL.waitTableEnabled(LABELS_TABLE_NAME.getName(), 50000);
  addLabels();

  // Create users for testing
  SUPERUSER = User.createUserForTesting(conf, "admin", new String[] { "supergroup" });
  NORMAL_USER1 = User.createUserForTesting(conf, "user1", new String[] {});
  NORMAL_USER2 = User.createUserForTesting(conf, "user2", new String[] {});
  // Grant users EXEC privilege on the labels table. For the purposes of this
  // test, we want to insure that access is denied even with the ability to access
  // the endpoint.
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER1.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER2.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
}
项目:pbase    文件:TestSecureLoadIncrementalHFilesSplitRecovery.java   
@BeforeClass
public static void setupCluster() throws Exception {
  util = new HBaseTestingUtility();
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:HIndex    文件:VisibilityController.java   
private List<String> getSystemAndSuperUsers() throws IOException {
  User user = User.getCurrent();
  if (user == null) {
    throw new IOException("Unable to obtain the current user, "
        + "authorization checks for internal operations will not work correctly!");
  }
  if (LOG.isTraceEnabled()) {
    LOG.trace("Current user name is "+user.getShortName());
  }
  String currentUser = user.getShortName();
  List<String> superUsers = Lists.asList(currentUser,
      this.conf.getStrings(AccessControlLists.SUPERUSER_CONF_KEY, new String[0]));
  return superUsers;
}
项目:HIndex    文件:TestVisibilityLabelsWithACL.java   
@BeforeClass
public static void setupBeforeClass() throws Exception {
  // setup configuration
  conf = TEST_UTIL.getConfiguration();
  SecureTestUtil.enableSecurity(conf);
  conf.set("hbase.coprocessor.master.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  conf.set("hbase.coprocessor.region.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  TEST_UTIL.startMiniCluster(2);

  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName(), 50000);
  // Wait for the labels table to become available
  TEST_UTIL.waitTableEnabled(LABELS_TABLE_NAME.getName(), 50000);
  addLabels();

  // Create users for testing
  SUPERUSER = User.createUserForTesting(conf, "admin", new String[] { "supergroup" });
  NORMAL_USER1 = User.createUserForTesting(conf, "user1", new String[] {});
  NORMAL_USER2 = User.createUserForTesting(conf, "user2", new String[] {});
  // Grant users EXEC privilege on the labels table. For the purposes of this
  // test, we want to insure that access is denied even with the ability to access
  // the endpoint.
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER1.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER2.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
}
项目:HIndex    文件:TestSecureLoadIncrementalHFilesSplitRecovery.java   
@BeforeClass
public static void setupCluster() throws Exception {
  util = new HBaseTestingUtility();
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName());
}
项目:IRIndex    文件:TestAccessController.java   
public void checkGlobalPerms(Permission.Action... actions) throws IOException {
  Permission[] perms = new Permission[actions.length];
  for (int i = 0; i < actions.length; i++) {
    perms[i] = new Permission(actions[i]);
  }
  HTable acl = new HTable(conf, AccessControlLists.ACL_TABLE_NAME);
  try {
    AccessControllerProtocol protocol = acl.coprocessorProxy(AccessControllerProtocol.class,
      new byte[0]);
    protocol.checkPermissions(perms);
  } finally {
    acl.close();
  }
}
项目:IRIndex    文件:TestSecureLoadIncrementalHFilesSplitRecovery.java   
@BeforeClass
public static void setupCluster() throws Exception {
  util = new HBaseTestingUtility();
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableAvailable(AccessControlLists.ACL_TABLE_NAME, 5000);
}
项目:IRIndex    文件:TestSecureLoadIncrementalHFiles.java   
@BeforeClass
public static void setUpBeforeClass() throws Exception {
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableAvailable(AccessControlLists.ACL_TABLE_NAME, 5000);
}
项目:hbase    文件:SnapshotDescriptionUtils.java   
public static boolean isSecurityAvailable(Configuration conf) throws IOException {
  try (Connection conn = ConnectionFactory.createConnection(conf)) {
    try (Admin admin = conn.getAdmin()) {
      return admin.tableExists(AccessControlLists.ACL_TABLE_NAME);
    }
  }
}
项目:hbase    文件:SnapshotDescriptionUtils.java   
private static SnapshotDescription writeAclToSnapshotDescription(SnapshotDescription snapshot,
    Configuration conf) throws IOException {
  ListMultimap<String, TablePermission> perms =
      User.runAsLoginUser(new PrivilegedExceptionAction<ListMultimap<String, TablePermission>>() {
        @Override
        public ListMultimap<String, TablePermission> run() throws Exception {
          return AccessControlLists.getTablePermissions(conf,
            TableName.valueOf(snapshot.getTable()));
        }
      });
  return snapshot.toBuilder()
      .setUsersAndPermissions(ShadedAccessControlUtil.toUserTablePermissions(perms)).build();
}
项目:hbase    文件:TestVisibilityLabelsWithACL.java   
@BeforeClass
public static void setupBeforeClass() throws Exception {
  // setup configuration
  conf = TEST_UTIL.getConfiguration();
  SecureTestUtil.enableSecurity(conf);
  conf.set("hbase.coprocessor.master.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  conf.set("hbase.coprocessor.region.classes", AccessController.class.getName() + ","
      + VisibilityController.class.getName());
  TEST_UTIL.startMiniCluster(2);

  TEST_UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME.getName(), 50000);
  // Wait for the labels table to become available
  TEST_UTIL.waitTableEnabled(LABELS_TABLE_NAME.getName(), 50000);
  addLabels();

  // Create users for testing
  SUPERUSER = User.createUserForTesting(conf, "admin", new String[] { "supergroup" });
  NORMAL_USER1 = User.createUserForTesting(conf, "user1", new String[] {});
  NORMAL_USER2 = User.createUserForTesting(conf, "user2", new String[] {});
  // Grant users EXEC privilege on the labels table. For the purposes of this
  // test, we want to insure that access is denied even with the ability to access
  // the endpoint.
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER1.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
  SecureTestUtil.grantOnTable(TEST_UTIL, NORMAL_USER2.getShortName(), LABELS_TABLE_NAME,
    null, null, Permission.Action.EXEC);
}
项目:hbase    文件:TestSecureLoadIncrementalHFilesSplitRecovery.java   
@BeforeClass
public static void setupCluster() throws Exception {
  util = new HBaseTestingUtility();
  // set the always on security provider
  UserProvider.setUserProviderForTesting(util.getConfiguration(),
    HadoopSecurityEnabledUserProviderForTesting.class);
  // setup configuration
  SecureTestUtil.enableSecurity(util.getConfiguration());

  util.startMiniCluster();

  // Wait for the ACL table to become available
  util.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
}
项目:hbase    文件:TestRSGroupsWithACL.java   
@BeforeClass
public static void setupBeforeClass() throws Exception {
  // setup configuration
  conf = TEST_UTIL.getConfiguration();
  conf.set(HConstants.HBASE_MASTER_LOADBALANCER_CLASS,
      RSGroupBasedLoadBalancer.class.getName());
  // Enable security
  enableSecurity(conf);
  // Verify enableSecurity sets up what we require
  verifyConfiguration(conf);
  // Enable rsgroup
  configureRSGroupAdminEndpoint(conf);

  TEST_UTIL.startMiniCluster();
  rsGroupAdminEndpoint = (RSGroupAdminEndpoint) TEST_UTIL.getMiniHBaseCluster().getMaster().
      getMasterCoprocessorHost().findCoprocessor(RSGroupAdminEndpoint.class.getName());
  // Wait for the ACL table to become available
  TEST_UTIL.waitUntilAllRegionsAssigned(AccessControlLists.ACL_TABLE_NAME);

  // create a set of test users
  SUPERUSER = User.createUserForTesting(conf, "admin", new String[] { "supergroup" });
  USER_ADMIN = User.createUserForTesting(conf, "admin2", new String[0]);
  USER_RW = User.createUserForTesting(conf, "rwuser", new String[0]);
  USER_RO = User.createUserForTesting(conf, "rouser", new String[0]);
  USER_OWNER = User.createUserForTesting(conf, "owner", new String[0]);
  USER_CREATE = User.createUserForTesting(conf, "tbl_create", new String[0]);
  USER_NONE = User.createUserForTesting(conf, "nouser", new String[0]);

  USER_GROUP_ADMIN =
      User.createUserForTesting(conf, "user_group_admin", new String[] { GROUP_ADMIN });
  USER_GROUP_CREATE =
      User.createUserForTesting(conf, "user_group_create", new String[] { GROUP_CREATE });
  USER_GROUP_READ =
      User.createUserForTesting(conf, "user_group_read", new String[] { GROUP_READ });
  USER_GROUP_WRITE =
      User.createUserForTesting(conf, "user_group_write", new String[] { GROUP_WRITE });

  systemUserConnection = TEST_UTIL.getConnection();
  setUpTableAndUserPermissions();
}
项目:hbase    文件:TestRSGroupsWithACL.java   
private static void cleanUp() throws Exception {
  // Clean the _acl_ table
  try {
    deleteTable(TEST_UTIL, TEST_TABLE);
  } catch (TableNotFoundException ex) {
    // Test deleted the table, no problem
    LOG.info("Test deleted table " + TEST_TABLE);
  }
  // Verify all table/namespace permissions are erased
  assertEquals(0, AccessControlLists.getTablePermissions(conf, TEST_TABLE).size());
  assertEquals(0, AccessControlLists.getNamespacePermissions(conf,
          TEST_TABLE.getNamespaceAsString()).size());
}
项目:PyroDB    文件:VisibilityController.java   
private List<String> getSystemAndSuperUsers() throws IOException {
  User user = User.getCurrent();
  if (user == null) {
    throw new IOException("Unable to obtain the current user, "
        + "authorization checks for internal operations will not work correctly!");
  }
  if (LOG.isTraceEnabled()) {
    LOG.trace("Current user name is "+user.getShortName());
  }
  String currentUser = user.getShortName();
  List<String> superUsers = Lists.asList(currentUser,
      this.conf.getStrings(AccessControlLists.SUPERUSER_CONF_KEY, new String[0]));
  return superUsers;
}