Merge remote-tracking branch 'origin' into ACCUMULO-1000
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/96a4815a Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/96a4815a Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/96a4815a Branch: refs/heads/ACCUMULO-1000 Commit: 96a4815aa31417839516f8327720c74f25bdc4b1 Parents: 5e90858 a943f32 Author: Keith Turner <[email protected]> Authored: Mon Jul 22 17:03:38 2013 -0400 Committer: Keith Turner <[email protected]> Committed: Mon Jul 22 17:03:38 2013 -0400 ---------------------------------------------------------------------- .../client/admin/SecurityOperationsImpl.java | 2 +- .../core/client/impl/BatchWriterImpl.java | 4 +- .../core/client/impl/ConnectorImpl.java | 5 +- .../client/security/tokens/PasswordToken.java | 7 +- .../core/security/CredentialHelper.java | 2 +- .../accumulo/core/security/Credentials.java | 18 +- .../chapters/troubleshooting.tex | 4 +- minicluster/pom.xml | 4 + .../minicluster/MiniAccumuloCluster.java | 64 +++++- .../minicluster/MiniAccumuloConfig.java | 9 + pom.xml | 5 + server/pom.xml | 6 + .../server/client/ClientServiceHandler.java | 14 +- .../accumulo/server/client/HdfsZooInstance.java | 3 - .../client/security/token/SystemToken.java | 30 --- .../server/gc/GarbageCollectWriteAheadLogs.java | 8 +- .../server/gc/SimpleGarbageCollector.java | 9 +- .../accumulo/server/master/LiveTServerSet.java | 24 +-- .../apache/accumulo/server/master/Master.java | 8 +- .../server/master/TabletGroupWatcher.java | 12 +- .../master/balancer/TableLoadBalancer.java | 4 +- .../server/master/balancer/TabletBalancer.java | 8 +- .../server/master/state/MetaDataStateStore.java | 4 +- .../server/master/tableOps/BulkImport.java | 4 +- .../server/master/tableOps/CloneTable.java | 10 +- .../server/master/tableOps/CreateTable.java | 12 +- .../server/master/tableOps/DeleteTable.java | 6 +- .../server/master/tableOps/ImportTable.java | 8 +- .../apache/accumulo/server/monitor/Monitor.java | 6 +- .../monitor/servlets/TServersServlet.java | 18 +- .../server/monitor/servlets/TablesServlet.java | 6 +- .../accumulo/server/problems/ProblemReport.java | 6 +- .../server/problems/ProblemReports.java | 8 +- .../security/AuditedSecurityOperation.java | 2 +- .../server/security/SecurityConstants.java | 111 ---------- .../server/security/SecurityOperation.java | 207 +++++++++---------- .../server/security/SystemCredentials.java | 132 ++++++++++++ .../accumulo/server/tabletserver/Tablet.java | 34 +-- .../server/tabletserver/TabletServer.java | 78 ++++--- .../org/apache/accumulo/server/util/Admin.java | 6 +- .../server/util/FindOfflineTablets.java | 6 +- .../apache/accumulo/server/util/Initialize.java | 4 +- .../accumulo/server/util/MetadataTableUtil.java | 16 +- .../server/security/SystemCredentialsTest.java | 67 ++++++ server/src/test/resources/accumulo-site.xml | 32 +++ test/pom.xml | 6 + .../apache/accumulo/test/GetMasterStats.java | 6 +- .../org/apache/accumulo/test/TestIngest.java | 5 +- .../apache/accumulo/test/TestRandomDeletes.java | 23 ++- .../continuous/ContinuousStatsCollector.java | 7 +- .../test/functional/SplitRecoveryTest.java | 26 +-- .../metadata/MetadataBatchScanTest.java | 6 +- .../test/performance/thrift/NullTserver.java | 4 +- .../test/randomwalk/concurrent/Shutdown.java | 24 +-- .../test/randomwalk/concurrent/StartAll.java | 8 +- .../randomwalk/security/WalkingSecurity.java | 3 +- .../accumulo/test/functional/AddSplitIT.java | 30 +-- .../test/functional/BadIteratorMincIT.java | 32 +-- .../test/functional/BatchWriterFlushIT.java | 24 ++- .../accumulo/test/functional/BinaryIT.java | 2 +- .../accumulo/test/functional/BulkFileIT.java | 13 +- .../apache/accumulo/test/functional/BulkIT.java | 15 +- .../accumulo/test/functional/ClassLoaderIT.java | 4 +- .../accumulo/test/functional/CombinerIT.java | 20 +- .../accumulo/test/functional/ConstraintIT.java | 40 ++-- .../test/functional/CreateAndUseIT.java | 27 +-- .../test/functional/CreateManyScannersIT.java | 9 +- .../accumulo/test/functional/DeleteIT.java | 2 +- .../accumulo/test/functional/DeleteRowsIT.java | 44 ++-- .../test/functional/DeleteRowsSplitIT.java | 24 +-- .../test/functional/FateStarvationIT.java | 14 +- .../test/functional/HalfDeadTServerIT.java | 17 +- .../accumulo/test/functional/LogicalTimeIT.java | 41 ++-- .../accumulo/test/functional/MacTest.java | 5 +- .../accumulo/test/functional/MapReduceIT.java | 8 +- .../accumulo/test/functional/MergeIT.java | 69 ++++--- .../accumulo/test/functional/MergeMetaIT.java | 2 +- .../accumulo/test/functional/NativeMapIT.java | 4 +- .../accumulo/test/functional/PermissionsIT.java | 108 +++++----- .../accumulo/test/functional/RenameIT.java | 13 +- .../accumulo/test/functional/RestartIT.java | 5 +- .../test/functional/RestartStressIT.java | 5 +- .../test/functional/ScanIteratorIT.java | 11 +- .../accumulo/test/functional/ScanRangeIT.java | 18 +- .../test/functional/ServerSideErrorIT.java | 19 +- .../accumulo/test/functional/SimpleMacIT.java | 82 ++++++++ .../test/functional/SparseColumnFamilyIT.java | 13 +- .../test/functional/SplitRecoveryIT.java | 4 +- .../accumulo/test/functional/StartIT.java | 8 +- .../accumulo/test/functional/TableIT.java | 25 +-- .../accumulo/test/functional/TimeoutIT.java | 16 +- .../accumulo/test/functional/VisibilityIT.java | 68 +++--- .../test/functional/WriteAheadLogIT.java | 3 +- .../accumulo/test/functional/WriteLotsIT.java | 7 +- .../accumulo/test/functional/ZooCacheIT.java | 8 +- 95 files changed, 1145 insertions(+), 865 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/96a4815a/core/src/main/java/org/apache/accumulo/core/client/impl/ConnectorImpl.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/96a4815a/server/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java ---------------------------------------------------------------------- diff --cc server/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java index 94a8cd6,2b98331..64b6177 --- a/server/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java +++ b/server/src/main/java/org/apache/accumulo/server/security/SecurityOperation.java @@@ -310,22 -325,13 +327,21 @@@ public class SecurityOperation public boolean canWrite(TCredentials credentials, String table) throws ThriftSecurityException { authenticate(credentials); - return hasTablePermission(credentials.getPrincipal(), table, TablePermission.WRITE, true); + return hasTablePermission(credentials, table, TablePermission.WRITE, true); } + public boolean canConditionallyUpdate(TCredentials credentials, String tableID, List<ByteBuffer> authorizations) throws ThriftSecurityException { + + authenticate(credentials); + + return hasTablePermission(credentials.getPrincipal(), tableID, TablePermission.WRITE, true) + && hasTablePermission(credentials.getPrincipal(), tableID, TablePermission.READ, true); + } + public boolean canSplitTablet(TCredentials credentials, String table) throws ThriftSecurityException { authenticate(credentials); - return hasSystemPermission(credentials.getPrincipal(), SystemPermission.ALTER_TABLE, false) - || hasSystemPermission(credentials.getPrincipal(), SystemPermission.SYSTEM, false) - || hasTablePermission(credentials.getPrincipal(), table, TablePermission.ALTER_TABLE, false); + return hasSystemPermission(credentials, SystemPermission.ALTER_TABLE, false) || hasSystemPermission(credentials, SystemPermission.SYSTEM, false) + || hasTablePermission(credentials, table, TablePermission.ALTER_TABLE, false); } /** http://git-wip-us.apache.org/repos/asf/accumulo/blob/96a4815a/server/src/main/java/org/apache/accumulo/server/tabletserver/Tablet.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/96a4815a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java ---------------------------------------------------------------------- diff --cc server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java index 8f33488,ceed0ee..c65c55d --- a/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java +++ b/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java @@@ -163,10 -156,9 +163,10 @@@ import org.apache.accumulo.server.metri import org.apache.accumulo.server.problems.ProblemReport; import org.apache.accumulo.server.problems.ProblemReports; import org.apache.accumulo.server.security.AuditedSecurityOperation; - import org.apache.accumulo.server.security.SecurityConstants; import org.apache.accumulo.server.security.SecurityOperation; + import org.apache.accumulo.server.security.SystemCredentials; import org.apache.accumulo.server.tabletserver.Compactor.CompactionInfo; +import org.apache.accumulo.server.tabletserver.RowLocks.RowLock; import org.apache.accumulo.server.tabletserver.Tablet.CommitSession; import org.apache.accumulo.server.tabletserver.Tablet.KVEntry; import org.apache.accumulo.server.tabletserver.Tablet.LookupResult; http://git-wip-us.apache.org/repos/asf/accumulo/blob/96a4815a/test/src/main/java/org/apache/accumulo/test/performance/thrift/NullTserver.java ----------------------------------------------------------------------
