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) {