This is an automated email from the ASF dual-hosted git repository.

shuwenwei pushed a commit to branch addSomeCommonInterfacesForCompatibility
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to 
refs/heads/addSomeCommonInterfacesForCompatibility by this push:
     new eafc2000829 add method in BasicUserManager
eafc2000829 is described below

commit eafc200082905c194c4896d0fa81319aac887687
Author: shuwenwei <[email protected]>
AuthorDate: Thu Sep 25 14:56:28 2025 +0800

    add method in BasicUserManager
---
 .../iotdb/commons/auth/user/BasicUserManager.java  | 49 +++++++++++++++++-----
 1 file changed, 39 insertions(+), 10 deletions(-)

diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
index cb46f5643a0..eb714f8de75 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
@@ -178,16 +178,8 @@ public abstract class BasicUserManager extends 
BasicRoleManager {
   public boolean createUser(
       String username, String password, boolean validCheck, boolean 
enableEncrypt)
       throws AuthException {
-    if (validCheck && 
!CommonDescriptor.getInstance().getConfig().getAdminName().equals(username)) {
-      if (username.equals(password)
-          && 
CommonDescriptor.getInstance().getConfig().isEnforceStrongPassword()) {
-        throw new AuthException(
-            TSStatusCode.ILLEGAL_PASSWORD, "Password cannot be the same as 
user name");
-      }
-      AuthUtils.validateUsername(username);
-      if (enableEncrypt) {
-        AuthUtils.validatePassword(password);
-      }
+    if (validCheck) {
+      validCheck(username, password, enableEncrypt);
     }
 
     User user = this.getEntity(username);
@@ -214,6 +206,43 @@ public abstract class BasicUserManager extends 
BasicRoleManager {
     }
   }
 
+  public void tryToCreateBuiltinUser(
+      String username, String password, long userId, boolean validCheck, 
boolean enableEncrypt)
+      throws AuthException {
+    if (validCheck) {
+      validCheck(username, password, enableEncrypt);
+    }
+    User user = this.getEntity(username);
+    if (user != null) {
+      throw new AuthException(
+          TSStatusCode.USER_ALREADY_EXIST, "Builtin username of admin is 
already in use");
+    }
+    lock.writeLock(username);
+    try {
+      user =
+          new User(
+              username, enableEncrypt ? AuthUtils.encryptPassword(password) : 
password, userId);
+      entityMap.put(username, user);
+    } finally {
+      lock.writeUnlock(username);
+    }
+  }
+
+  private void validCheck(String username, String password, boolean 
enableEncrypt)
+      throws AuthException {
+    if 
(!CommonDescriptor.getInstance().getConfig().getAdminName().equals(username)) {
+      if (username.equals(password)
+          && 
CommonDescriptor.getInstance().getConfig().isEnforceStrongPassword()) {
+        throw new AuthException(
+            TSStatusCode.ILLEGAL_PASSWORD, "Password cannot be the same as 
user name");
+      }
+      AuthUtils.validateUsername(username);
+      if (enableEncrypt) {
+        AuthUtils.validatePassword(password);
+      }
+    }
+  }
+
   public boolean updateUserPassword(String username, String newPassword, 
boolean bypassValidate)
       throws AuthException {
     if (!bypassValidate) {

Reply via email to