This is an automated email from the ASF dual-hosted git repository. justinchen pushed a commit to branch fix-audit-logger in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8265a3c04bed14ab319c634c8e98cb148886ac16 Author: Caideyipi <[email protected]> AuthorDate: Tue Dec 9 16:01:40 2025 +0800 partial --- .../iotdb/confignode/manager/ConfigManager.java | 8 ++- .../PipeConfigTreePrivilegeParseVisitorTest.java | 79 ++++++++++++++++++++++ 2 files changed, 86 insertions(+), 1 deletion(-) diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java index 5cd3efdfc72..93e9bf20056 100644 --- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java +++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java @@ -74,6 +74,7 @@ import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.utils.AuthUtils; import org.apache.iotdb.commons.utils.PathUtils; import org.apache.iotdb.commons.utils.StatusUtils; +import org.apache.iotdb.commons.utils.TestOnly; import org.apache.iotdb.confignode.audit.CNAuditLogger; import org.apache.iotdb.confignode.conf.ConfigNodeConfig; import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor; @@ -323,7 +324,7 @@ public class ConfigManager implements IManager { private final PartitionManager partitionManager; /** Manage cluster authorization. */ - private final PermissionManager permissionManager; + private PermissionManager permissionManager; /** Manage load balancing. */ protected LoadManager loadManager; @@ -3106,4 +3107,9 @@ public class ConfigManager implements IManager { resp.setConfigNodeList(getNodeManager().getRegisteredConfigNodes()); return resp; } + + @TestOnly + public void setPermissionManager(final PermissionManager permissionManager) { + this.permissionManager = permissionManager; + } } diff --git a/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePrivilegeParseVisitorTest.java b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePrivilegeParseVisitorTest.java new file mode 100644 index 00000000000..55913f099c8 --- /dev/null +++ b/iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/manager/pipe/source/PipeConfigTreePrivilegeParseVisitorTest.java @@ -0,0 +1,79 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.iotdb.confignode.manager.pipe.source; + +import org.apache.iotdb.commons.auth.entity.PrivilegeUnion; +import org.apache.iotdb.commons.exception.MetadataException; +import org.apache.iotdb.commons.utils.StatusUtils; +import org.apache.iotdb.confignode.manager.ConfigManager; +import org.apache.iotdb.confignode.manager.PermissionManager; +import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp; +import org.apache.iotdb.confignode.service.ConfigNode; +import org.apache.iotdb.db.exception.StorageEngineException; + +import org.apache.tsfile.exception.write.WriteProcessException; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.io.IOException; + +public class PipeConfigTreePrivilegeParseVisitorTest { + + private final PipeConfigTreePrivilegeParseVisitor skipVisitor = + new PipeConfigTreePrivilegeParseVisitor(true); + private final PipeConfigTreePrivilegeParseVisitor throwVisitor = + new PipeConfigTreePrivilegeParseVisitor(false); + + private ConfigNode oldInstance; + + @Before + public void setUp() + throws IOException, WriteProcessException, MetadataException, InterruptedException { + oldInstance = ConfigNode.getInstance(); + ConfigNode.setInstance(new ConfigNode()); + final ConfigManager configManager = new ConfigManager(); + configManager.setPermissionManager(new TestPermissionManager()); + ConfigNode.getInstance().setConfigManager(configManager); + } + + @After + public void tearDown() throws IOException, StorageEngineException { + ConfigNode.setInstance(oldInstance); + } + + @Test + public void testCreateDatabase() { + Assert.assertTrue(skipVisitor.canReadSysSchema("root.db", null, true)); + } + + private static class TestPermissionManager extends PermissionManager { + public TestPermissionManager() { + super(null, null); + } + + @Override + public TPermissionInfoResp checkUserPrivileges( + final String username, final PrivilegeUnion union) { + return new TPermissionInfoResp(StatusUtils.OK); + } + } +}
