You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by wa...@apache.org on 2022/06/06 06:54:40 UTC
[iotdb] branch master updated: [IOTDB-3393] Optimize log in auth module and fix the init of parameter in resp. (#6161)
This is an automated email from the ASF dual-hosted git repository.
wangchao316 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 7565b7987a [IOTDB-3393] Optimize log in auth module and fix the init of parameter in resp. (#6161)
7565b7987a is described below
commit 7565b7987ac5b801a512268da42b215e882f7944
Author: ZhangHongYin <46...@users.noreply.github.com>
AuthorDate: Mon Jun 6 14:54:35 2022 +0800
[IOTDB-3393] Optimize log in auth module and fix the init of parameter in resp. (#6161)
[IOTDB-3393] Optimize log in auth module and fix the init of parameter in resp.
---
.../iotdb/confignode/manager/ConfigManager.java | 13 +++++-----
.../confignode/manager/PermissionManager.java | 2 +-
.../iotdb/confignode/persistence/AuthorInfo.java | 28 +++++++---------------
.../org/apache/iotdb/commons/utils/AuthUtils.java | 15 ++++++++++++
4 files changed, 31 insertions(+), 27 deletions(-)
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 11ec6e2abd..a6d9797b8d 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.path.PartialPath;
+import org.apache.iotdb.commons.utils.AuthUtils;
import org.apache.iotdb.confignode.conf.ConfigNodeConf;
import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
import org.apache.iotdb.confignode.consensus.request.ConfigRequest;
@@ -511,9 +512,9 @@ public class ConfigManager implements Manager {
if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
return permissionManager.login(username, password);
} else {
- TPermissionInfoResp permissionInfoResp = new TPermissionInfoResp();
- permissionInfoResp.setStatus(status);
- return permissionInfoResp;
+ TPermissionInfoResp resp = AuthUtils.generateEmptyPermissionInfoResp();
+ resp.setStatus(status);
+ return resp;
}
}
@@ -524,9 +525,9 @@ public class ConfigManager implements Manager {
if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
return permissionManager.checkUserPrivileges(username, paths, permission);
} else {
- TPermissionInfoResp permissionInfoResp = new TPermissionInfoResp();
- permissionInfoResp.setStatus(status);
- return permissionInfoResp;
+ TPermissionInfoResp resp = AuthUtils.generateEmptyPermissionInfoResp();
+ resp.setStatus(status);
+ return resp;
}
}
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/PermissionManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/PermissionManager.java
index d27060c5f9..98389bd222 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/PermissionManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/PermissionManager.java
@@ -129,7 +129,7 @@ public class PermissionManager {
return status;
}
} catch (IOException | TException e) {
- logger.error("Failed to initialize cache, the error is {}", e);
+ logger.error("Failed to initialize cache, the error is ", e);
return RpcUtils.getStatus(
TSStatusCode.INVALIDATE_PERMISSION_CACHE_ERROR,
"Failed to initialize cache, the error is " + e.getMessage());
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
index 40df733487..35a1e12e97 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
@@ -65,7 +65,7 @@ public class AuthorInfo implements SnapshotProcessor {
try {
authorizer = BasicAuthorizer.getInstance();
} catch (AuthException e) {
- logger.error("get user or role permissionInfo failed", e);
+ logger.error("get user or role permissionInfo failed because ", e);
}
}
@@ -81,10 +81,7 @@ public class AuthorInfo implements SnapshotProcessor {
result = getUserPermissionInfo(username);
result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS, "Login successfully"));
} else {
- result.setUserInfo(new TUserResp("", "", new ArrayList<>(), new ArrayList<>()));
- Map<String, TRoleResp> roleInfo = new HashMap<>();
- roleInfo.put("", new TRoleResp("", new ArrayList<>()));
- result.setRoleInfo(roleInfo);
+ result = AuthUtils.generateEmptyPermissionInfoResp();
}
} catch (AuthException e) {
logger.error("meet error while logging in.", e);
@@ -120,17 +117,12 @@ public class AuthorInfo implements SnapshotProcessor {
} catch (AuthException e) {
result.setStatus(
RpcUtils.getStatus(TSStatusCode.EXECUTE_PERMISSION_EXCEPTION_ERROR, e.getMessage()));
- return result;
}
- return result;
} else {
- result.setUserInfo(new TUserResp("", "", new ArrayList<>(), new ArrayList<>()));
- Map<String, TRoleResp> roleInfo = new HashMap<>();
- roleInfo.put("", new TRoleResp("", new ArrayList<>()));
- result.setRoleInfo(roleInfo);
+ result = AuthUtils.generateEmptyPermissionInfoResp();
result.setStatus(RpcUtils.getStatus(TSStatusCode.NO_PERMISSION_ERROR));
- return result;
}
+ return result;
}
private boolean checkOnePath(String username, String path, int permission) throws AuthException {
@@ -334,10 +326,6 @@ public class AuthorInfo implements SnapshotProcessor {
for (PrivilegeType privilegeType : PrivilegeType.values()) {
userPrivilegesList.add(privilegeType.toString());
}
- permissionInfo.put(IoTDBConstant.COLUMN_PRIVILEGE, userPrivilegesList);
- result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
- result.setPermissionInfo(permissionInfo);
- return result;
} else {
List<String> rolePrivileges = new ArrayList<>();
for (PathPrivilege pathPrivilege : user.getPrivilegeList()) {
@@ -361,11 +349,11 @@ public class AuthorInfo implements SnapshotProcessor {
}
}
permissionInfo.put(IoTDBConstant.COLUMN_ROLE, rolePrivileges);
- permissionInfo.put(IoTDBConstant.COLUMN_PRIVILEGE, userPrivilegesList);
- result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
- result.setPermissionInfo(permissionInfo);
- return result;
}
+ permissionInfo.put(IoTDBConstant.COLUMN_PRIVILEGE, userPrivilegesList);
+ result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
+ result.setPermissionInfo(permissionInfo);
+ return result;
}
@Override
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
index 86773b1762..52e1e661f3 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
@@ -26,12 +26,18 @@ import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.IllegalPathException;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.security.encrypt.AsymmetricEncryptFactory;
+import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
+import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
+import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Map;
import java.util.Set;
public class AuthUtils {
@@ -345,4 +351,13 @@ public class AuthUtils {
privilegeList.remove(emptyPrivilege);
}
}
+
+ public static TPermissionInfoResp generateEmptyPermissionInfoResp() {
+ TPermissionInfoResp permissionInfoResp = new TPermissionInfoResp();
+ permissionInfoResp.setUserInfo(new TUserResp("", "", new ArrayList<>(), new ArrayList<>()));
+ Map<String, TRoleResp> roleInfo = new HashMap<>();
+ roleInfo.put("", new TRoleResp("", new ArrayList<>()));
+ permissionInfoResp.setRoleInfo(roleInfo);
+ return permissionInfoResp;
+ }
}