You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2011/11/01 16:12:29 UTC
svn commit: r1196044 -
/incubator/accumulo/branches/1.3/src/examples/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java
Author: ecn
Date: Tue Nov 1 15:12:29 2011
New Revision: 1196044
URL: http://svn.apache.org/viewvc?rev=1196044&view=rev
Log:
ACCUMULO-86: fix example to set visibilities to prevent unexpected permission issues
Modified:
incubator/accumulo/branches/1.3/src/examples/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java
Modified: incubator/accumulo/branches/1.3/src/examples/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.3/src/examples/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java?rev=1196044&r1=1196043&r2=1196044&view=diff
==============================================================================
--- incubator/accumulo/branches/1.3/src/examples/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java (original)
+++ incubator/accumulo/branches/1.3/src/examples/src/main/java/org/apache/accumulo/examples/dirlist/Ingest.java Tue Nov 1 15:12:29 2011
@@ -18,6 +18,8 @@ package org.apache.accumulo.examples.dir
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.accumulo.core.client.BatchWriter;
import org.apache.accumulo.core.client.Connector;
@@ -25,6 +27,7 @@ import org.apache.accumulo.core.client.Z
import org.apache.accumulo.core.data.Mutation;
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.iterators.aggregation.LongSummation;
+import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.security.ColumnVisibility;
import org.apache.hadoop.io.Text;
@@ -92,6 +95,7 @@ public class Ingest {
String pass = args[3];
String table = args[4];
String indexTable = args[5];
+ byte[] visibility = args[6].getBytes();
ColumnVisibility colvis = new ColumnVisibility(args[6]);
Connector conn = new ZooKeeperInstance(instance, zooKeepers).getConnector(user, pass.getBytes());
@@ -99,6 +103,17 @@ public class Ingest {
conn.tableOperations().create(table);
if (!conn.tableOperations().exists(indexTable))
conn.tableOperations().create(indexTable);
+ Authorizations auths = conn.securityOperations().getUserAuthorizations(user);
+ if (!auths.contains(visibility)) {
+ List<byte[]> copy = new ArrayList<byte[]>(auths.getAuthorizations());
+ copy.add(visibility);
+ try {
+ conn.securityOperations().changeUserAuthorizations(user, new Authorizations(copy));
+ } catch (Exception ex) {
+ System.out.println("Unable to add visiblity to user " + user + ": " + ex);
+ System.exit(1);
+ }
+ }
BatchWriter mainBW = conn.createBatchWriter(table, 50000000, 300000l, 4);
BatchWriter indexBW = conn.createBatchWriter(indexTable, 50000000, 300000l, 4);
for (int i = 7; i < args.length; i++) {