This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 7bbd83d4042 [IOTDB-6326] Normalize the table headers of Auth related
statement
7bbd83d4042 is described below
commit 7bbd83d4042185ae010dbc0e8654f0a9f52343f8
Author: Jackie Tien <[email protected]>
AuthorDate: Thu May 9 10:59:59 2024 +0800
[IOTDB-6326] Normalize the table headers of Auth related statement
---
.../org/apache/iotdb/db/it/IoTDBRestServiceIT.java | 5 ++--
.../db/it/IoTDBSyntaxConventionIdentifierIT.java | 4 ++--
.../iotdb/db/it/auth/IoTDBClusterAuthorityIT.java | 4 ++--
.../pipe/it/manual/IoTDBPipeMetaHistoricalIT.java | 28 ++++++++++++++++++----
.../iotdb/confignode/persistence/AuthorInfo.java | 10 ++++----
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 22 ++++++++---------
.../common/header/ColumnHeaderConstant.java | 12 ++++++++++
.../apache/iotdb/commons/conf/IoTDBConstant.java | 4 ----
8 files changed, 58 insertions(+), 31 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
index 6eab7d51f68..0776855f397 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestServiceIT.java
@@ -18,6 +18,7 @@
*/
package org.apache.iotdb.db.it;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
import org.apache.iotdb.it.env.EnvFactory;
import org.apache.iotdb.it.env.cluster.node.DataNodeWrapper;
import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -1385,7 +1386,7 @@ public class IoTDBRestServiceIT {
List<Object> columnNames =
new ArrayList<Object>() {
{
- add("user");
+ add(ColumnHeaderConstant.USER);
}
};
List<Object> values1 =
@@ -2036,7 +2037,7 @@ public class IoTDBRestServiceIT {
List<Object> columnNames =
new ArrayList<Object>() {
{
- add("user");
+ add(ColumnHeaderConstant.USER);
}
};
List<Object> values1 =
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
index 3e9743bc8c8..247255cdfb6 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
@@ -615,7 +615,7 @@ public class IoTDBSyntaxConventionIdentifierIT {
Set<String> expectedResult = new HashSet<>(Arrays.asList(resultNames));
try (ResultSet resultSet = statement.executeQuery("list user")) {
while (resultSet.next()) {
- String user = resultSet.getString("user").toLowerCase();
+ String user =
resultSet.getString(ColumnHeaderConstant.USER).toLowerCase();
Assert.assertTrue(expectedResult.contains(user));
expectedResult.remove(user);
}
@@ -678,7 +678,7 @@ public class IoTDBSyntaxConventionIdentifierIT {
Set<String> expectedResult = new HashSet<>(Arrays.asList(resultNames));
try (ResultSet resultSet = statement.executeQuery("list role")) {
while (resultSet.next()) {
- String role = resultSet.getString("role").toLowerCase();
+ String role =
resultSet.getString(ColumnHeaderConstant.ROLE).toLowerCase();
Assert.assertTrue(expectedResult.contains(role));
expectedResult.remove(role);
}
diff --git
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
index 9514474881b..ef9c147a742 100644
---
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
@@ -22,7 +22,6 @@ package org.apache.iotdb.db.it.auth;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.auth.entity.PrivilegeType;
import org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.utils.AuthUtils;
@@ -30,6 +29,7 @@ import
org.apache.iotdb.confignode.rpc.thrift.IConfigNodeRPCService;
import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
import org.apache.iotdb.db.queryengine.plan.statement.AuthorType;
import org.apache.iotdb.it.env.EnvFactory;
import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -366,7 +366,7 @@ public class IoTDBClusterAuthorityIT {
authorizerResp = client.queryPermission(authorizerReq);
status = authorizerResp.getStatus();
assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(),
status.getCode());
- assertEquals(IoTDBConstant.COLUMN_PRIVILEGE, authorizerResp.getTag());
+ assertEquals(ColumnHeaderConstant.PRIVILEGES, authorizerResp.getTag());
assertEquals("tempuser0",
authorizerResp.getPermissionInfo().getUserInfo().getUsername());
assertEquals(
new ArrayList<>(),
authorizerResp.getPermissionInfo().getUserInfo().getPrivilegeList());
diff --git
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
index e15a8f6b708..c917acbde1a 100644
---
a/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/pipe/it/manual/IoTDBPipeMetaHistoricalIT.java
@@ -24,6 +24,7 @@ import
org.apache.iotdb.commons.client.sync.SyncConfigNodeIServiceClient;
import org.apache.iotdb.confignode.rpc.thrift.TCreatePipeReq;
import org.apache.iotdb.consensus.ConsensusFactory;
import org.apache.iotdb.db.it.utils.TestUtils;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
import org.apache.iotdb.it.env.MultiEnvFactory;
import org.apache.iotdb.it.env.cluster.node.DataNodeWrapper;
import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -136,8 +137,12 @@ public class IoTDBPipeMetaHistoricalIT extends
AbstractPipeDualManualIT {
TSStatusCode.SUCCESS_STATUS.getStatusCode(),
client.startPipe("testPipe").getCode());
TestUtils.assertDataAlwaysOnEnv(
- receiverEnv, "list user", "user,", Collections.singleton("root,"));
- TestUtils.assertDataAlwaysOnEnv(receiverEnv, "list role", "role,",
Collections.emptySet());
+ receiverEnv,
+ "list user",
+ ColumnHeaderConstant.USER + ",",
+ Collections.singleton("root,"));
+ TestUtils.assertDataAlwaysOnEnv(
+ receiverEnv, "list role", ColumnHeaderConstant.ROLE + ",",
Collections.emptySet());
TestUtils.assertDataEventuallyOnEnv(
receiverEnv,
@@ -216,11 +221,21 @@ public class IoTDBPipeMetaHistoricalIT extends
AbstractPipeDualManualIT {
TSStatusCode.SUCCESS_STATUS.getStatusCode(),
client.startPipe("testPipe").getCode());
TestUtils.assertDataEventuallyOnEnv(
- receiverEnv, "list user of role `admin`", "user,",
Collections.singleton("thulab,"));
+ receiverEnv,
+ "list user of role `admin`",
+ ColumnHeaderConstant.USER + ",",
+ Collections.singleton("thulab,"));
TestUtils.assertDataEventuallyOnEnv(
receiverEnv,
"list privileges of role `admin`",
- "ROLE,PATH,PRIVILEGES,GRANT OPTION,",
+ ColumnHeaderConstant.ROLE
+ + ","
+ + ColumnHeaderConstant.PATH
+ + ","
+ + ColumnHeaderConstant.PRIVILEGES
+ + ","
+ + ColumnHeaderConstant.GRANT_OPTION
+ + ",",
new HashSet<>(
Arrays.asList("admin,root.**,READ_DATA,false,",
"admin,root.**,READ_SCHEMA,false,")));
@@ -237,7 +252,10 @@ public class IoTDBPipeMetaHistoricalIT extends
AbstractPipeDualManualIT {
}
TestUtils.assertDataEventuallyOnEnv(
- receiverEnv, "list role", "role,", new
HashSet<>(Arrays.asList("admin,", "test,")));
+ receiverEnv,
+ "list role",
+ ColumnHeaderConstant.ROLE + ",",
+ new HashSet<>(Arrays.asList("admin,", "test,")));
}
}
}
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
index f0be01f2b91..e993e40fbc2 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
@@ -30,7 +30,6 @@ import org.apache.iotdb.commons.auth.entity.Role;
import org.apache.iotdb.commons.auth.entity.User;
import org.apache.iotdb.commons.conf.CommonConfig;
import org.apache.iotdb.commons.conf.CommonDescriptor;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
import org.apache.iotdb.commons.snapshot.SnapshotProcessor;
@@ -45,6 +44,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TPathPrivilege;
import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
import org.apache.iotdb.rpc.RpcUtils;
import org.apache.iotdb.rpc.TSStatusCode;
@@ -337,7 +337,7 @@ public class AuthorInfo implements SnapshotProcessor {
}
}
}
- result.setTag(IoTDBConstant.COLUMN_USER);
+ result.setTag(ColumnHeaderConstant.USER);
result.setMemberInfo(userList);
result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
return result;
@@ -359,7 +359,7 @@ public class AuthorInfo implements SnapshotProcessor {
}
roleList.addAll(user.getRoleList());
}
- result.setTag(IoTDBConstant.COLUMN_ROLE);
+ result.setTag(ColumnHeaderConstant.ROLE);
result.setMemberInfo(roleList);
result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
return result;
@@ -393,7 +393,7 @@ public class AuthorInfo implements SnapshotProcessor {
roleInfo.put(role.getName(), roleResp);
resp.setRoleInfo(roleInfo);
resp.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
- result.setTag(IoTDBConstant.COLUMN_PRIVILEGE);
+ result.setTag(ColumnHeaderConstant.PRIVILEGES);
result.setPermissionInfoResp(resp);
result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
result.setMemberInfo(permissionInfo);
@@ -410,7 +410,7 @@ public class AuthorInfo implements SnapshotProcessor {
}
TPermissionInfoResp resp = getUserPermissionInfo(plan.getUserName());
resp.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
- result.setTag(IoTDBConstant.COLUMN_PRIVILEGE);
+ result.setTag(ColumnHeaderConstant.PRIVILEGES);
result.setPermissionInfoResp(resp);
result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
return result;
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index d85606d3def..4dc29bd42f7 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -23,7 +23,6 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.auth.AuthException;
import org.apache.iotdb.commons.auth.entity.PrivilegeType;
import org.apache.iotdb.commons.conf.CommonDescriptor;
-import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics;
@@ -33,6 +32,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
import org.apache.iotdb.db.protocol.session.IClientSession;
import org.apache.iotdb.db.queryengine.common.header.ColumnHeader;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult;
import org.apache.iotdb.db.queryengine.plan.statement.Statement;
@@ -51,6 +51,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.stream.Collectors;
+
+import static
org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant.LIST_USER_PRIVILEGES_Column_HEADERS;
// Authority checker is SingleTon working at datanode.
// It checks permission in local. DCL statement will send to confignode.
@@ -206,8 +209,8 @@ public class AuthorityChecker {
TAuthorizerResp authResp, SettableFuture<ConfigTaskResult> future) {
List<TSDataType> types = new ArrayList<>();
boolean listRoleUser =
- authResp.tag.equals(IoTDBConstant.COLUMN_ROLE)
- || authResp.tag.equals(IoTDBConstant.COLUMN_USER);
+ authResp.tag.equals(ColumnHeaderConstant.ROLE)
+ || authResp.tag.equals(ColumnHeaderConstant.USER);
List<ColumnHeader> headerList = new ArrayList<>();
TsBlockBuilder builder;
@@ -221,14 +224,11 @@ public class AuthorityChecker {
builder.declarePosition();
}
} else {
- headerList.add(new ColumnHeader("ROLE", TSDataType.TEXT));
- types.add(TSDataType.TEXT);
- headerList.add(new ColumnHeader("PATH", TSDataType.TEXT));
- types.add(TSDataType.TEXT);
- headerList.add(new ColumnHeader("PRIVILEGES", TSDataType.TEXT));
- types.add(TSDataType.TEXT);
- headerList.add(new ColumnHeader("GRANT OPTION", TSDataType.BOOLEAN));
- types.add(TSDataType.BOOLEAN);
+ headerList = LIST_USER_PRIVILEGES_Column_HEADERS;
+ types =
+ LIST_USER_PRIVILEGES_Column_HEADERS.stream()
+ .map(ColumnHeader::getColumnType)
+ .collect(Collectors.toList());
builder = new TsBlockBuilder(types);
TUserResp user = authResp.getPermissionInfo().getUserInfo();
if (user != null) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
index ea2fad8805f..cb76c13aa0b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
@@ -68,6 +68,7 @@ public class ColumnHeaderConstant {
public static final String VERSION = "Version";
public static final String BUILD_INFO = "BuildInfo";
public static final String PATHS = "Paths";
+ public static final String PATH = "Path";
public static final String VARIABLE = "Variable";
// column names for count statement
@@ -199,6 +200,10 @@ public class ColumnHeaderConstant {
// column names for show current timestamp
public static final String CURRENT_TIMESTAMP = "CurrentTimestamp";
+ public static final String PRIVILEGES = "Privileges";
+
+ public static final String GRANT_OPTION = "GrantOption";
+
public static final List<ColumnHeader> lastQueryColumnHeaders =
ImmutableList.of(
new ColumnHeader(TIMESERIES, TSDataType.TEXT),
@@ -488,4 +493,11 @@ public class ColumnHeaderConstant {
public static final List<ColumnHeader> showCurrentTimestampColumnHeaders =
ImmutableList.of(new ColumnHeader(CURRENT_TIMESTAMP, TSDataType.INT64));
+
+ public static final List<ColumnHeader> LIST_USER_PRIVILEGES_Column_HEADERS =
+ ImmutableList.of(
+ new ColumnHeader(ROLE, TSDataType.TEXT),
+ new ColumnHeader(PATH, TSDataType.TEXT),
+ new ColumnHeader(PRIVILEGES, TSDataType.TEXT),
+ new ColumnHeader(GRANT_OPTION, TSDataType.BOOLEAN));
}
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index 88df1615a58..22164360a47 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -170,10 +170,6 @@ public class IoTDBConstant {
public static final String QUERY_ID = "queryId";
public static final String STATEMENT = "statement";
- public static final String COLUMN_ROLE = "role";
- public static final String COLUMN_USER = "user";
- public static final String COLUMN_PRIVILEGE = "privilege";
-
public static final String COLUMN_DATABASE = "database";
public static final String COLUMN_TTL = "ttl";