namespaces = accumuloClient.namespaceOperations().list(); } catch (Exception e) { log.debug("Unable to obtain list of namespaces", e);
@SuppressFBWarnings(value = "PATH_TRAVERSAL_IN", justification = "code runs in same security context as user who provided input") private static void printUserConfiguration(AccumuloClient accumuloClient, String user, File outputDirectory) throws IOException, AccumuloException, AccumuloSecurityException { File userScript = new File(outputDirectory, user + USER_FILE_SUFFIX); FileWriter userWriter = new FileWriter(userScript); userWriter.write(createUserFormat.format(new String[] {user})); Authorizations auths = accumuloClient.securityOperations().getUserAuthorizations(user); userWriter.write(userAuthsFormat.format(new String[] {user, auths.toString()})); for (SystemPermission sp : SystemPermission.values()) { if (accumuloClient.securityOperations().hasSystemPermission(user, sp)) { userWriter.write(sysPermFormat.format(new String[] {sp.name(), user})); } } for (String namespace : accumuloClient.namespaceOperations().list()) { for (NamespacePermission np : NamespacePermission.values()) { if (accumuloClient.securityOperations().hasNamespacePermission(user, namespace, np)) { userWriter.write(nsPermFormat.format(new String[] {np.name(), namespace, user})); } } } for (String tableName : accumuloClient.tableOperations().list()) { for (TablePermission perm : TablePermission.values()) { if (accumuloClient.securityOperations().hasTablePermission(user, tableName, perm)) { userWriter.write(tablePermFormat.format(new String[] {perm.name(), tableName, user})); } } } userWriter.close(); }
@Override public List<String> listNamespaces(ByteBuffer login) throws org.apache.accumulo.proxy.thrift.AccumuloException, org.apache.accumulo.proxy.thrift.AccumuloSecurityException, TException { try { return new LinkedList<>(getConnector(login).namespaceOperations().list()); } catch (Exception e) { handleException(e); return null; } }
for (String n : shellState.getAccumuloClient().namespaceOperations().list()) { delim = ""; for (NamespacePermission p : NamespacePermission.values()) {
namespaces = connector.namespaceOperations().list(); } catch (Exception e) { log.debug("Unable to obtain list of namespaces", e);
private static void printUserConfiguration(Connector connector, String user, File outputDirectory) throws IOException, AccumuloException, AccumuloSecurityException { File userScript = new File(outputDirectory, user + USER_FILE_SUFFIX); FileWriter userWriter = new FileWriter(userScript); userWriter.write(createUserFormat.format(new String[] {user})); Authorizations auths = connector.securityOperations().getUserAuthorizations(user); userWriter.write(userAuthsFormat.format(new String[] {user, auths.toString()})); for (SystemPermission sp : SystemPermission.values()) { if (connector.securityOperations().hasSystemPermission(user, sp)) { userWriter.write(sysPermFormat.format(new String[] {sp.name(), user})); } } for (String namespace : connector.namespaceOperations().list()) { for (NamespacePermission np : NamespacePermission.values()) { if (connector.securityOperations().hasNamespacePermission(user, namespace, np)) { userWriter.write(nsPermFormat.format(new String[] {np.name(), namespace, user})); } } } for (String tableName : connector.tableOperations().list()) { for (TablePermission perm : TablePermission.values()) { if (connector.securityOperations().hasTablePermission(user, tableName, perm)) { userWriter.write(tablePermFormat.format(new String[] {perm.name(), tableName, user})); } } } userWriter.close(); }
@Test public void listNamespaces() throws Exception { SortedSet<String> namespaces = c.namespaceOperations().list(); Map<String,String> map = c.namespaceOperations().namespaceIdMap(); assertEquals(2, namespaces.size()); namespaces = c.namespaceOperations().list(); map = c.namespaceOperations().namespaceIdMap(); assertEquals(3, namespaces.size()); namespaces = c.namespaceOperations().list(); map = c.namespaceOperations().namespaceIdMap(); assertEquals(2, namespaces.size());
@After public void swingMjölnir() throws Exception { if (null == c) { return; } // clean up any added tables, namespaces, and users, after each test for (String t : c.tableOperations().list()) if (!Tables.qualify(t).getFirst().equals(Namespaces.ACCUMULO_NAMESPACE)) c.tableOperations().delete(t); assertEquals(3, c.tableOperations().list().size()); for (String n : c.namespaceOperations().list()) if (!n.equals(Namespaces.ACCUMULO_NAMESPACE) && !n.equals(Namespaces.DEFAULT_NAMESPACE)) c.namespaceOperations().delete(n); assertEquals(2, c.namespaceOperations().list().size()); for (String u : c.securityOperations().listLocalUsers()) if (!getAdminPrincipal().equals(u)) c.securityOperations().dropLocalUser(u); assertEquals(1, c.securityOperations().listLocalUsers().size()); }
private void changeNamespaceSetting(RandomDataGenerator random, State state, Environment env, Properties props) throws Exception { // pick a random property int choice = random.nextInt(0, tableSettings.length - 1); Setting setting = tableSettings[choice]; // pick a random table SortedSet<String> namespaces = env.getConnector().namespaceOperations().list().tailSet("nspc") .headSet("nspd"); if (namespaces.isEmpty()) return; String namespace = random.nextSample(namespaces, 1)[0].toString(); // generate a random value long newValue = random.nextLong(setting.min, setting.max); state.set(LAST_NAMESPACE_SETTING, namespace + "," + choice); log.debug( "Setting " + setting.property.getKey() + " on namespace " + namespace + " to " + newValue); try { env.getConnector().namespaceOperations().setProperty(namespace, setting.property.getKey(), "" + newValue); } catch (AccumuloException ex) { if (ex.getCause() instanceof ThriftTableOperationException) { ThriftTableOperationException ttoe = (ThriftTableOperationException) ex.getCause(); if (ttoe.type == TableOperationExceptionType.NAMESPACE_NOTFOUND) return; } throw ex; } }
SortedSet<String> namespaces = nops.list(); NamespacePermission[] allNamespacePerms = NamespacePermission.values(); for (String next : namespaces) {
test_user_conn.namespaceOperations().create(namespace); loginAs(rootUser); if (!root_conn.namespaceOperations().list().contains(namespace)) throw new IllegalStateException("Should be able to create a namespace"); break; test_user_conn.namespaceOperations().delete(namespace); loginAs(rootUser); if (root_conn.namespaceOperations().list().contains(namespace)) throw new IllegalStateException("Should be able to delete a namespace"); break; test_user_conn.namespaceOperations().rename(namespace, namespace2); loginAs(rootUser); if (root_conn.namespaceOperations().list().contains(namespace) || !root_conn.namespaceOperations().list().contains(namespace2)) throw new IllegalStateException("Should be able to rename a table"); break;
loginAs(rootUser); if (e.getSecurityErrorCode() != SecurityErrorCode.PERMISSION_DENIED || root_conn.namespaceOperations().list().contains(namespace)) throw e; loginAs(rootUser); if (e.getSecurityErrorCode() != SecurityErrorCode.PERMISSION_DENIED || !root_conn.namespaceOperations().list().contains(namespace)) throw e; loginAs(rootUser); if (e.getSecurityErrorCode() != SecurityErrorCode.PERMISSION_DENIED || !root_conn.namespaceOperations().list().contains(namespace) || root_conn.namespaceOperations().list().contains(namespace2)) throw e;
for (String n : shellState.getConnector().namespaceOperations().list()) { delim = ""; for (NamespacePermission p : NamespacePermission.values()) {