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

hxd pushed a commit to branch fix_988
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3a58dc022bedf286695396d4dc273c2937542fa8
Author: xiangdong huang <[email protected]>
AuthorDate: Sat Nov 7 09:40:14 2020 +0800

    fix nullpointer exception if no password is set when login
---
 .../apache/iotdb/db/auth/authorizer/BasicAuthorizer.java    |  2 +-
 .../java/org/apache/iotdb/db/service/TSServiceImpl.java     | 13 ++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java 
b/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
index fa28241..fd6091c 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/auth/authorizer/BasicAuthorizer.java
@@ -102,7 +102,7 @@ public abstract class BasicAuthorizer implements 
IAuthorizer, IService {
   @Override
   public boolean login(String username, String password) throws AuthException {
     User user = userManager.getUser(username);
-    return user != null && 
user.getPassword().equals(AuthUtils.encryptPassword(password));
+    return user != null && password!=null && 
user.getPassword().equals(AuthUtils.encryptPassword(password));
   }
 
   @Override
diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java 
b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
index 67fceec..168668a 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/TSServiceImpl.java
@@ -246,18 +246,21 @@ public class TSServiceImpl implements TSIService.Iface, 
ServerContext {
       sessionIdUsernameMap.put(sessionId, req.getUsername());
       sessionIdZoneIdMap.put(sessionId, ZoneId.of(req.getZoneId()));
       currSessionId.set(sessionId);
+      auditLogger.info("User {} opens Session-{}", req.getUsername(), 
sessionId);
+      logger.info(
+          "{}: Login status: {}. User : {}", IoTDBConstant.GLOBAL_DB_NAME, 
tsStatus.message,
+          req.getUsername());
     } else {
       tsStatus = RpcUtils.getStatus(TSStatusCode.WRONG_LOGIN_PASSWORD_ERROR);
+      if (loginMessage == null) {
+        loginMessage = "Username or Password is incorrect";
+      }
       tsStatus.setMessage(loginMessage);
+      auditLogger.info("User {} opens Session failed with an incorrect 
password", req.getUsername());
     }
-    auditLogger.info("User {} opens Session-{}", req.getUsername(), sessionId);
     TSOpenSessionResp resp = new TSOpenSessionResp(tsStatus,
         CURRENT_RPC_VERSION);
     resp.setSessionId(sessionId);
-    logger.info(
-        "{}: Login status: {}. User : {}", IoTDBConstant.GLOBAL_DB_NAME, 
tsStatus.message,
-        req.getUsername());
-
     return resp;
   }
 

Reply via email to