You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by yo...@apache.org on 2025/09/22 10:43:29 UTC
(iotdb) 01/01: seems finish
This is an automated email from the ASF dual-hosted git repository.
yongzao pushed a commit to branch add-userid-in-client
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit e67d778799900b80f925e195fda4ac06aa762b6d
Author: Yongzao <53...@qq.com>
AuthorDate: Mon Sep 22 18:43:17 2025 +0800
seems finish
---
.../db/protocol/client/DataNodeInternalClient.java | 6 +++++-
.../protocol/rest/filter/AuthorizationFilter.java | 1 +
.../apache/iotdb/db/protocol/rest/filter/User.java | 6 ++++++
.../iotdb/db/protocol/session/IClientSession.java | 10 ++++++++++
.../iotdb/db/protocol/session/SessionManager.java | 22 +++++++++-------------
.../impl/DataNodeInternalRPCServiceImpl.java | 7 ++++++-
6 files changed, 37 insertions(+), 15 deletions(-)
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java
index 0440fbd9f26..d96151b2e93 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/client/DataNodeInternalClient.java
@@ -81,7 +81,11 @@ public class DataNodeInternalClient {
session.setSqlDialect(sessionInfo.getSqlDialect());
SESSION_MANAGER.supplySession(
- session, sessionInfo.getUserName(), sessionInfo.getZoneId(), ClientVersion.V_1_0);
+ session,
+ sessionInfo.getUserId(),
+ sessionInfo.getUserName(),
+ sessionInfo.getZoneId(),
+ ClientVersion.V_1_0);
LOGGER.info("User: {}, opens internal Session-{}.", sessionInfo.getUserName(), session);
} catch (Exception e) {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/AuthorizationFilter.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/AuthorizationFilter.java
index 53c825cb69c..c1bdf32f192 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/AuthorizationFilter.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/AuthorizationFilter.java
@@ -101,6 +101,7 @@ public class AuthorizationFilter implements ContainerRequestFilter, ContainerRes
SESSION_MANAGER.registerSession(restClientSession);
SESSION_MANAGER.supplySession(
SESSION_MANAGER.getCurrSession(),
+ user.getUserId(),
user.getUsername(),
ZoneId.systemDefault(),
IoTDBConstant.ClientVersion.V_1_0);
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/User.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/User.java
index 0bb0dd4c522..36392f57234 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/User.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/rest/filter/User.java
@@ -18,9 +18,15 @@
package org.apache.iotdb.db.protocol.rest.filter;
public class User {
+ // TODO: unify with the real User and UserCache
+ private long userId = -1;
private String username;
private String password;
+ public long getUserId() {
+ return userId;
+ }
+
public String getPassword() {
return password;
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java
index 0a12fbe8206..21d4121ffd3 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/IClientSession.java
@@ -44,6 +44,8 @@ public abstract class IClientSession {
private TimeZone timeZone;
+ private long userId;
+
private String username;
private boolean login = false;
@@ -89,6 +91,14 @@ public abstract class IClientSession {
this.zoneId = timeZone.toZoneId();
}
+ public long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(long userId) {
+ this.userId = userId;
+ }
+
public String getUsername() {
return this.username;
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java
index 0f69c8c0711..f67b764a04f 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/session/SessionManager.java
@@ -264,8 +264,10 @@ public class SessionManager implements SessionManagerMBean {
.setCode(TSStatusCode.INCOMPATIBLE_VERSION.getStatusCode())
.setMessage("The version is incompatible, please upgrade to " + IoTDBConstant.VERSION);
} else {
+ User user = authorityFetcher.get().getUser(session.getUsername());
+ long userId = user == null ? -1 : user.getUserId();
session.setSqlDialect(sqlDialect);
- supplySession(session, username, ZoneId.of(zoneId), clientVersion);
+ supplySession(session, userId, username, ZoneId.of(zoneId), clientVersion);
String logInMessage = "Login successfully";
if (timeToExpire != null && timeToExpire != Long.MAX_VALUE) {
DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@@ -534,10 +536,12 @@ public class SessionManager implements SessionManagerMBean {
/** must be called after registerSession()) will mark the session login. */
public void supplySession(
IClientSession session,
+ long userId,
String username,
ZoneId zoneId,
IoTDBConstant.ClientVersion clientVersion) {
session.setId(sessionIdGenerator.incrementAndGet());
+ session.setUserId(userId);
session.setUsername(username);
session.setZoneId(zoneId);
session.setClientVersion(clientVersion);
@@ -556,11 +560,9 @@ public class SessionManager implements SessionManagerMBean {
}
public SessionInfo getSessionInfo(IClientSession session) {
- User user = authorityFetcher.get().getUser(session.getUsername());
- long userId = user == null ? -1 : user.getUserId();
return new SessionInfo(
session.getId(),
- new UserEntity(userId, session.getUsername(), session.getClientAddress()),
+ new UserEntity(session.getUserId(), session.getUsername(), session.getClientAddress()),
session.getZoneId(),
session.getClientVersion(),
session.getDatabaseName(),
@@ -580,11 +582,9 @@ public class SessionManager implements SessionManagerMBean {
}
public SessionInfo getSessionInfoOfTreeModel(IClientSession session) {
- User user = authorityFetcher.get().getUser(session.getUsername());
- long userId = user == null ? -1 : user.getUserId();
return new SessionInfo(
session.getId(),
- new UserEntity(userId, session.getUsername(), session.getClientAddress()),
+ new UserEntity(session.getUserId(), session.getUsername(), session.getClientAddress()),
ZoneId.systemDefault(),
session.getClientVersion(),
session.getDatabaseName(),
@@ -592,11 +592,9 @@ public class SessionManager implements SessionManagerMBean {
}
public SessionInfo getSessionInfoOfTableModel(IClientSession session) {
- User user = authorityFetcher.get().getUser(session.getUsername());
- long userId = user == null ? -1 : user.getUserId();
return new SessionInfo(
session.getId(),
- new UserEntity(userId, session.getUsername(), session.getClientAddress()),
+ new UserEntity(session.getUserId(), session.getUsername(), session.getClientAddress()),
ZoneId.systemDefault(),
session.getClientVersion(),
session.getDatabaseName(),
@@ -604,11 +602,9 @@ public class SessionManager implements SessionManagerMBean {
}
public SessionInfo getSessionInfoOfPipeReceiver(IClientSession session, String databaseName) {
- User user = authorityFetcher.get().getUser(session.getUsername());
- long userId = user == null ? -1 : user.getUserId();
return new SessionInfo(
session.getId(),
- new UserEntity(userId, session.getUsername(), session.getClientAddress()),
+ new UserEntity(session.getUserId(), session.getUsername(), session.getClientAddress()),
ZoneId.systemDefault(),
session.getClientVersion(),
databaseName,
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
index 063cc37057c..b5b6d919d5e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
@@ -1562,7 +1562,12 @@ public class DataNodeInternalRPCServiceImpl implements IDataNodeRPCService.Iface
SESSION_MANAGER.registerSession(session);
SESSION_MANAGER.supplySession(
- session, req.getUsername(), ZoneId.of(req.getZoneId()), ClientVersion.V_1_0);
+ session,
+ // TODO: User the real userId
+ -1,
+ req.getUsername(),
+ ZoneId.of(req.getZoneId()),
+ ClientVersion.V_1_0);
String executedSQL = req.queryBody;