You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by bi...@apache.org on 2011/12/14 21:24:44 UTC

svn commit: r1214446 - in /incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock: MockInstance.java MockSecurityOperations.java

Author: billie
Date: Wed Dec 14 20:24:43 2011
New Revision: 1214446

URL: http://svn.apache.org/viewvc?rev=1214446&view=rev
Log:
ACCUMULO-217 made user admin operations throw errors when user or table doesn't exist; made MockInstance create the user that is used to create a Connector

Modified:
    incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockInstance.java
    incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java

Modified: incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockInstance.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockInstance.java?rev=1214446&r1=1214445&r2=1214446&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockInstance.java (original)
+++ incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockInstance.java Wed Dec 14 20:24:43 2011
@@ -27,7 +27,9 @@ import org.apache.accumulo.core.client.A
 import org.apache.accumulo.core.client.Connector;
 import org.apache.accumulo.core.client.Instance;
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
+import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.thrift.AuthInfo;
+import org.apache.accumulo.core.util.ByteBufferUtil;
 import org.apache.accumulo.core.util.TextUtil;
 import org.apache.hadoop.io.Text;
 
@@ -85,12 +87,14 @@ public class MockInstance implements Ins
   
   @Override
   public Connector getConnector(String user, byte[] pass) throws AccumuloException, AccumuloSecurityException {
-    return new MockConnector(user, acu);
+    Connector conn = new MockConnector(user, acu);
+    conn.securityOperations().createUser(user, pass, new Authorizations());
+    return conn;
   }
   
   @Override
   public Connector getConnector(String user, ByteBuffer pass) throws AccumuloException, AccumuloSecurityException {
-    return new MockConnector(user, acu);
+    return getConnector(user, ByteBufferUtil.toBytes(pass));
   }
   
   @Override

Modified: incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java?rev=1214446&r1=1214445&r2=1214446&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java (original)
+++ incubator/accumulo/branches/1.4/src/core/src/main/java/org/apache/accumulo/core/client/mock/MockSecurityOperations.java Wed Dec 14 20:24:43 2011
@@ -26,6 +26,7 @@ import org.apache.accumulo.core.client.a
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.accumulo.core.security.SystemPermission;
 import org.apache.accumulo.core.security.TablePermission;
+import org.apache.accumulo.core.security.thrift.SecurityErrorCode;
 
 public class MockSecurityOperations implements SecurityOperations {
   
@@ -58,6 +59,8 @@ public class MockSecurityOperations impl
     MockUser user = acu.users.get(name);
     if (user != null)
       user.password = Arrays.copyOf(password, password.length);
+    else
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
   }
   
   @Override
@@ -65,6 +68,8 @@ public class MockSecurityOperations impl
     MockUser user = acu.users.get(name);
     if (user != null)
       user.authorizations = authorizations;
+    else
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
   }
   
   @Override
@@ -72,7 +77,8 @@ public class MockSecurityOperations impl
     MockUser user = acu.users.get(name);
     if (user != null)
       return user.authorizations;
-    return new Authorizations();
+    else
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
   }
   
   @Override
@@ -80,14 +86,15 @@ public class MockSecurityOperations impl
     MockUser user = acu.users.get(name);
     if (user != null)
       return user.permissions.contains(perm);
-    return false;
+    else
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
   }
   
   @Override
   public boolean hasTablePermission(String name, String tableName, TablePermission perm) throws AccumuloException, AccumuloSecurityException {
     MockTable table = acu.tables.get(tableName);
     if (table == null)
-      return false;
+      throw new AccumuloSecurityException(tableName, SecurityErrorCode.TABLE_DOESNT_EXIST);
     EnumSet<TablePermission> perms = table.userPermissions.get(name);
     if (perms == null)
       return false;
@@ -99,15 +106,17 @@ public class MockSecurityOperations impl
     MockUser user = acu.users.get(name);
     if (user != null)
       user.permissions.add(permission);
+    else
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
   }
   
   @Override
   public void grantTablePermission(String name, String tableName, TablePermission permission) throws AccumuloException, AccumuloSecurityException {
     if (acu.users.get(name) == null)
-      return;
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
     MockTable table = acu.tables.get(tableName);
     if (table == null)
-      return;
+      throw new AccumuloSecurityException(tableName, SecurityErrorCode.TABLE_DOESNT_EXIST);
     EnumSet<TablePermission> perms = table.userPermissions.get(name);
     if (perms == null)
       table.userPermissions.put(name, EnumSet.of(permission));
@@ -120,15 +129,17 @@ public class MockSecurityOperations impl
     MockUser user = acu.users.get(name);
     if (user != null)
       user.permissions.remove(permission);
+    else
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
   }
   
   @Override
   public void revokeTablePermission(String name, String tableName, TablePermission permission) throws AccumuloException, AccumuloSecurityException {
     if (acu.users.get(name) == null)
-      return;
+      throw new AccumuloSecurityException(name, SecurityErrorCode.USER_DOESNT_EXIST);
     MockTable table = acu.tables.get(tableName);
     if (table == null)
-      return;
+      throw new AccumuloSecurityException(tableName, SecurityErrorCode.TABLE_DOESNT_EXIST);
     EnumSet<TablePermission> perms = table.userPermissions.get(name);
     if (perms != null)
       perms.remove(permission);