Skip to content
Merged
8 changes: 8 additions & 0 deletions server/src/assembly/resources/conf/iotdb-engine.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
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;

Expand All @@ -32,7 +33,7 @@

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() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
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;
Expand All @@ -39,6 +38,6 @@ public LocalFileAuthorizer() throws AuthException {

@Override
boolean isAdmin(String username) {
return IoTDBConstant.ADMIN_NAME.equals(username);
return config.getAdminName().equals(username);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
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;
Expand Down Expand Up @@ -66,15 +66,17 @@ public BasicUserManager(IUserAccessor accessor) throws AuthException {
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");
}
Expand Down
22 changes: 21 additions & 1 deletion server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -2162,4 +2166,20 @@ public int getIoTaskQueueSizeForFlushing() {
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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,6 @@ private 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";
Expand Down
30 changes: 10 additions & 20 deletions server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
Original file line number Diff line number Diff line change
Expand Up @@ -596,20 +596,6 @@ private void loadProps() {
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())));

Expand Down Expand Up @@ -701,19 +687,23 @@ private void loadProps() {
}

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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
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;
Expand Down Expand Up @@ -254,7 +254,7 @@ public void testListUser() throws AuthException {
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++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
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;
Expand Down Expand Up @@ -210,7 +210,7 @@ public void test() throws AuthException {
// 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));
}
Expand Down