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);
+    }
+  }
+}

Reply via email to