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;
+  }
 }