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

tanxinyu 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 bcce61b  [IOTDB-1385] Extract the super user and password to the 
config (#3244)
bcce61b is described below

commit bcce61bfbc643fcb7ecaac5df29d92dd705f7912
Author: wangchao316 <[email protected]>
AuthorDate: Fri May 21 17:58:05 2021 +0800

    [IOTDB-1385] Extract the super user and password to the config (#3244)
    
    * [IOTDB-1385] Extract the super user and password to the config
    
    Co-authored-by: Potato <[email protected]>
---
 .../resources/conf/iotdb-engine.properties         |  8 ++++++
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |  3 ++-
 .../db/auth/authorizer/LocalFileAuthorizer.java    |  3 +--
 .../iotdb/db/auth/user/BasicUserManager.java       | 10 +++++---
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 22 +++++++++++++++-
 .../org/apache/iotdb/db/conf/IoTDBConstant.java    |  2 --
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 30 ++++++++--------------
 .../auth/authorizer/LocalFileAuthorizerTest.java   |  4 +--
 .../db/auth/user/LocalFileUserManagerTest.java     |  4 +--
 9 files changed, 52 insertions(+), 34 deletions(-)

diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties 
b/server/src/assembly/resources/conf/iotdb-engine.properties
index fb87a99..38f1455 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -831,3 +831,11 @@ timestamp_precision=ms
 # time range for partitioning data inside each storage group, the unit is 
second
 # Datatype: long
 # partition_interval=604800
+
+# admin username, default is root
+# Datatype: string
+# admin_name=root
+
+# admin password, default is root
+# Datatype: string
+# admin_password=root
diff --git 
a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java 
b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index 34766d1..4ea4a8e 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -22,6 +22,7 @@ import org.apache.iotdb.db.auth.authorizer.BasicAuthorizer;
 import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
 import org.apache.iotdb.db.auth.entity.PrivilegeType;
 import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.metadata.PartialPath;
 import org.apache.iotdb.db.qp.logical.Operator;
 
@@ -32,7 +33,7 @@ import java.util.List;
 
 public class AuthorityChecker {
 
-  private static final String SUPER_USER = IoTDBConstant.ADMIN_NAME;
+  private static final String SUPER_USER = 
IoTDBDescriptor.getInstance().getConfig().getAdminName();
   private static final Logger logger = 
LoggerFactory.getLogger(AuthorityChecker.class);
 
   private AuthorityChecker() {}
diff --git 
a/server/src/main/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizer.java
 
b/server/src/main/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizer.java
index 3032d14..14629a4 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizer.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.role.LocalFileRoleManager;
 import org.apache.iotdb.db.auth.user.LocalFileUserManager;
 import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBConstant;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 
 import java.io.File;
@@ -39,6 +38,6 @@ public class LocalFileAuthorizer extends BasicAuthorizer {
 
   @Override
   boolean isAdmin(String username) {
-    return IoTDBConstant.ADMIN_NAME.equals(username);
+    return config.getAdminName().equals(username);
   }
 }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java 
b/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
index cc3c372..9a5a261 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/user/BasicUserManager.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.auth.user;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.User;
 import org.apache.iotdb.db.concurrent.HashLock;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.AuthUtils;
 
 import org.slf4j.Logger;
@@ -66,15 +66,17 @@ public abstract class BasicUserManager implements 
IUserManager {
   private void initAdmin() throws AuthException {
     User admin;
     try {
-      admin = getUser(IoTDBConstant.ADMIN_NAME);
+      admin = 
getUser(IoTDBDescriptor.getInstance().getConfig().getAdminName());
     } catch (AuthException e) {
       logger.warn("Cannot load admin, Creating a new one.", e);
       admin = null;
     }
 
     if (admin == null) {
-      createUser(IoTDBConstant.ADMIN_NAME, IoTDBConstant.ADMIN_PW);
-      setUserUseWaterMark(IoTDBConstant.ADMIN_NAME, false);
+      createUser(
+          IoTDBDescriptor.getInstance().getConfig().getAdminName(),
+          IoTDBDescriptor.getInstance().getConfig().getAdminPassword());
+      
setUserUseWaterMark(IoTDBDescriptor.getInstance().getConfig().getAdminName(), 
false);
     }
     logger.info("Admin initialized");
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index ee1b9d9..6f9498b 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -630,7 +630,7 @@ public class IoTDBConfig {
   private boolean enablePartialInsert = true;
 
   // Open ID Secret
-  private String openIdProviderUrl = null;
+  private String openIdProviderUrl = "";
 
   // the authorizer provider class which extends BasicAuthorizer
   private String authorizerProvider = 
"org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer";
@@ -683,6 +683,10 @@ public class IoTDBConfig {
   /** the number of virtual storage groups per user-defined storage group */
   private int virtualStorageGroupNum = 1;
 
+  private String adminName = "root";
+
+  private String adminPassword = "root";
+
   public IoTDBConfig() {
     // empty constructor
   }
@@ -2162,4 +2166,20 @@ public class IoTDBConfig {
   public void setIoTaskQueueSizeForFlushing(int ioTaskQueueSizeForFlushing) {
     this.ioTaskQueueSizeForFlushing = ioTaskQueueSizeForFlushing;
   }
+
+  public String getAdminName() {
+    return adminName;
+  }
+
+  public void setAdminName(String adminName) {
+    this.adminName = adminName;
+  }
+
+  public String getAdminPassword() {
+    return adminPassword;
+  }
+
+  public void setAdminPassword(String adminPassword) {
+    this.adminPassword = adminPassword;
+  }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
index f5bba2e..a497437 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConstant.java
@@ -50,8 +50,6 @@ public class IoTDBConstant {
 
   public static final String PATH_ROOT = "root";
   public static final char PATH_SEPARATOR = '.';
-  public static final String ADMIN_NAME = "root";
-  public static final String ADMIN_PW = "root";
   public static final String PROFILE_SUFFIX = ".profile";
   public static final String MAX_TIME = "max_time";
   public static final String MIN_TIME = "min_time";
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index cec1321..645a534 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -596,20 +596,6 @@ public class IoTDBDescriptor {
           Long.parseLong(
               properties.getProperty("default_ttl", 
String.valueOf(conf.getDefaultTTL()))));
 
-      //      conf.setEnablePartition(Boolean.parseBoolean(
-      //          properties.getProperty("enable_partition",
-      // String.valueOf(conf.isEnablePartition()))));
-
-      // Time range for dividing storage group
-      //      conf.setPartitionInterval(Long.parseLong(properties
-      //              .getProperty("partition_interval",
-      // String.valueOf(conf.getPartitionInterval()))));
-
-      // the num of memtables in each storage group
-      //      conf.setConcurrentWritingTimePartition(
-      //          
Integer.parseInt(properties.getProperty("concurrent_writing_time_partition",
-      //              
String.valueOf(conf.getConcurrentWritingTimePartition()))));
-
       conf.setTimeIndexLevel(
           properties.getProperty("time_index_level", 
String.valueOf(conf.getTimeIndexLevel())));
 
@@ -701,19 +687,23 @@ public class IoTDBDescriptor {
       }
 
       conf.setAuthorizerProvider(
-          properties.getProperty(
-              "authorizer_provider_class",
-              "org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer"));
+          properties.getProperty("authorizer_provider_class", 
conf.getAuthorizerProvider()));
       // if using org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer, 
openID_url is needed.
-      conf.setOpenIdProviderUrl(properties.getProperty("openID_url", ""));
+      conf.setOpenIdProviderUrl(properties.getProperty("openID_url", 
conf.getOpenIdProviderUrl()));
 
       conf.setEnablePartition(
           Boolean.parseBoolean(
-              properties.getProperty("enable_partition", 
conf.isEnablePartition() + "")));
+              properties.getProperty(
+                  "enable_partition", 
String.valueOf(conf.isEnablePartition()))));
 
       conf.setPartitionInterval(
           Long.parseLong(
-              properties.getProperty("partition_interval", 
conf.getPartitionInterval() + "")));
+              properties.getProperty(
+                  "partition_interval", 
String.valueOf(conf.getPartitionInterval()))));
+
+      conf.setAdminName(properties.getProperty("admin_name", 
conf.getAdminName()));
+
+      conf.setAdminPassword(properties.getProperty("admin_password", 
conf.getAdminPassword()));
 
       // At the same time, set TSFileConfig
       TSFileDescriptor.getInstance()
diff --git 
a/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
 
b/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
index 5c91f53..237d329 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.auth.authorizer;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.Role;
 import org.apache.iotdb.db.auth.entity.User;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 
 import org.junit.After;
@@ -254,7 +254,7 @@ public class LocalFileAuthorizerTest {
     IAuthorizer authorizer = BasicAuthorizer.getInstance();
     List<String> userList = authorizer.listAllUsers();
     assertEquals(1, userList.size());
-    assertEquals(IoTDBConstant.ADMIN_NAME, userList.get(0));
+    assertEquals(IoTDBDescriptor.getInstance().getConfig().getAdminName(), 
userList.get(0));
 
     int userCnt = 10;
     for (int i = 0; i < userCnt; i++) {
diff --git 
a/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
 
b/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
index c5f0bbf..32ef68f 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.db.auth.user;
 import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.auth.entity.PathPrivilege;
 import org.apache.iotdb.db.auth.entity.User;
-import org.apache.iotdb.db.conf.IoTDBConstant;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.utils.AuthUtils;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
@@ -210,7 +210,7 @@ public class LocalFileUserManagerTest {
     // list users
     List<String> usernames = manager.listAllUsers();
     usernames.sort(null);
-    assertEquals(IoTDBConstant.ADMIN_NAME, usernames.get(0));
+    assertEquals(IoTDBDescriptor.getInstance().getConfig().getAdminName(), 
usernames.get(0));
     for (int i = 0; i < users.length - 1; i++) {
       assertEquals(users[i].getName(), usernames.get(i + 1));
     }

Reply via email to