You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by jm...@apache.org on 2020/12/09 15:26:34 UTC
[accumulo] branch 1.10 updated: Throw sercurity exceptions when
permissions checks fail. Backport to 1.10 (#1830)
This is an automated email from the ASF dual-hosted git repository.
jmanno pushed a commit to branch 1.10
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/1.10 by this push:
new 56142a8 Throw sercurity exceptions when permissions checks fail. Backport to 1.10 (#1830)
56142a8 is described below
commit 56142a89952533fef922fa86739a879c073e7c2a
Author: Jeffrey Manno <je...@gmail.com>
AuthorDate: Wed Dec 9 10:26:20 2020 -0500
Throw sercurity exceptions when permissions checks fail. Backport to 1.10 (#1830)
* backport sercurity exceptions to 1.10
* fix AuditMessageIT
---
.../accumulo/master/MasterClientServiceHandler.java | 21 ++++++++++++++-------
.../org/apache/accumulo/test/AuditMessageIT.java | 2 +-
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/server/master/src/main/java/org/apache/accumulo/master/MasterClientServiceHandler.java b/server/master/src/main/java/org/apache/accumulo/master/MasterClientServiceHandler.java
index ab45a49..608a819 100644
--- a/server/master/src/main/java/org/apache/accumulo/master/MasterClientServiceHandler.java
+++ b/server/master/src/main/java/org/apache/accumulo/master/MasterClientServiceHandler.java
@@ -118,7 +118,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
public long initiateFlush(TInfo tinfo, TCredentials c, String tableId)
throws ThriftSecurityException, ThriftTableOperationException {
String namespaceId = getNamespaceIdFromTableId(TableOperation.FLUSH, tableId);
- master.security.canFlush(c, tableId, namespaceId);
+ if (!master.security.canFlush(c, tableId, namespaceId))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
String zTablePath = Constants.ZROOT + "/" + master.getInstance().getInstanceID()
+ Constants.ZTABLES + "/" + tableId + Constants.ZTABLE_FLUSH_ID;
@@ -150,7 +151,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
ByteBuffer endRow, long flushID, long maxLoops)
throws ThriftSecurityException, ThriftTableOperationException {
String namespaceId = getNamespaceIdFromTableId(TableOperation.FLUSH, tableId);
- master.security.canFlush(c, tableId, namespaceId);
+ if (!master.security.canFlush(c, tableId, namespaceId))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
if (endRow != null && startRow != null
&& ByteBufferUtil.toText(startRow).compareTo(ByteBufferUtil.toText(endRow)) >= 0)
@@ -305,7 +307,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
@Override
public void shutdown(TInfo info, TCredentials c, boolean stopTabletServers)
throws ThriftSecurityException {
- master.security.canPerformSystemActions(c);
+ if (!master.security.canPerformSystemActions(c))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
if (stopTabletServers) {
master.setMasterGoalState(MasterGoalState.CLEAN_STOP);
EventCoordinator.Listener eventListener = master.nextEvent.getListener();
@@ -319,7 +322,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
@Override
public void shutdownTabletServer(TInfo info, TCredentials c, String tabletServer, boolean force)
throws ThriftSecurityException {
- master.security.canPerformSystemActions(c);
+ if (!master.security.canPerformSystemActions(c))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
final TServerInstance doomed = master.tserverSet.find(tabletServer);
if (!force) {
@@ -391,7 +395,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
@Override
public void setMasterGoalState(TInfo info, TCredentials c, MasterGoalState state)
throws ThriftSecurityException {
- master.security.canPerformSystemActions(c);
+ if (!master.security.canPerformSystemActions(c))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
master.setMasterGoalState(state);
}
@@ -399,7 +404,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
@Override
public void removeSystemProperty(TInfo info, TCredentials c, String property)
throws ThriftSecurityException {
- master.security.canPerformSystemActions(c);
+ if (!master.security.canPerformSystemActions(c))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
try {
SystemPropUtil.removeSystemProperty(property);
@@ -413,7 +419,8 @@ public class MasterClientServiceHandler extends FateServiceHandler
@Override
public void setSystemProperty(TInfo info, TCredentials c, String property, String value)
throws ThriftSecurityException, TException {
- master.security.canPerformSystemActions(c);
+ if (!master.security.canPerformSystemActions(c))
+ throw new ThriftSecurityException(c.getPrincipal(), SecurityErrorCode.PERMISSION_DENIED);
try {
SystemPropUtil.setSystemProperty(property, value);
diff --git a/test/src/main/java/org/apache/accumulo/test/AuditMessageIT.java b/test/src/main/java/org/apache/accumulo/test/AuditMessageIT.java
index abaed73..69e294b 100644
--- a/test/src/main/java/org/apache/accumulo/test/AuditMessageIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/AuditMessageIT.java
@@ -465,7 +465,7 @@ public class AuditMessageIT extends ConfigurableMacBase {
auditConnector.tableOperations().rename(OLD_TEST_TABLE_NAME, NEW_TEST_TABLE_NAME);
} catch (AccumuloSecurityException ex) {}
try {
- auditConnector.tableOperations().clone(OLD_TEST_TABLE_NAME, NEW_TEST_TABLE_NAME, true,
+ auditConnector.tableOperations().clone(OLD_TEST_TABLE_NAME, NEW_TEST_TABLE_NAME, false,
Collections.<String,String>emptyMap(), Collections.<String>emptySet());
} catch (AccumuloSecurityException ex) {}
try {