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

zhongjiajie pushed a commit to branch 3.0.0-beta-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git

commit bb30b88306e33fde05fb72b74b23597c5fe1f277
Author: longtb <[email protected]>
AuthorDate: Mon May 23 09:54:11 2022 +0800

    [Fix-10076] queryUserByToken use server timezone (#10177)
    
    * [Fix-10076] queryUserByToken use server timezone
    
    * [Fix-10076] queryUserByToken use server timezone
    
    (cherry picked from commit bd34e66b8a493a2aa14af5884f2f7c13819004f2)
---
 .../dolphinscheduler/api/interceptor/LoginHandlerInterceptor.java   | 4 +++-
 .../api/interceptor/LoginHandlerInterceptorTest.java                | 6 +++++-
 .../java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java     | 6 ++++--
 .../resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml | 2 +-
 .../java/org/apache/dolphinscheduler/dao/mapper/UserMapperTest.java | 2 +-
 5 files changed, 14 insertions(+), 6 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptor.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptor.java
index 2013348ed8..243928960b 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptor.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptor.java
@@ -37,6 +37,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.ModelAndView;
 
+import java.util.Date;
+
 /**
  * login interceptor, must log in first
  */
@@ -71,7 +73,7 @@ public class LoginHandlerInterceptor implements 
HandlerInterceptor {
                 return false;
             }
         } else {
-            user = userMapper.queryUserByToken(token);
+            user = userMapper.queryUserByToken(token, new Date());
             if (user == null) {
                 response.setStatus(HttpStatus.SC_UNAUTHORIZED);
                 logger.info("user token has expired");
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptorTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptorTest.java
index 67d34192d4..467cfa0e07 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptorTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/interceptor/LoginHandlerInterceptorTest.java
@@ -17,6 +17,8 @@
 
 package org.apache.dolphinscheduler.api.interceptor;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
 
 import org.apache.dolphinscheduler.api.ApiApplicationServer;
@@ -45,6 +47,8 @@ import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+
 @ActiveProfiles(value = {ProfileType.H2})
 @RunWith(SpringRunner.class)
 @SpringBootTest(classes = ApiApplicationServer.class)
@@ -81,7 +85,7 @@ public class LoginHandlerInterceptorTest {
         // test token
         String token = "123456";
         when(request.getHeader("token")).thenReturn(token);
-        when(userMapper.queryUserByToken(token)).thenReturn(mockUser);
+        when(userMapper.queryUserByToken(eq(token), 
any(Date.class))).thenReturn(mockUser);
         Assert.assertTrue(interceptor.preHandle(request, response, null));
 
         // test disable user
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java
index bd611417c1..d31f4b460b 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/UserMapper.java
@@ -21,6 +21,7 @@ import org.apache.dolphinscheduler.dao.entity.User;
 
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 import org.springframework.cache.annotation.CacheConfig;
@@ -83,7 +84,7 @@ public interface UserMapper extends BaseMapper<User> {
     /**
      * user page
      *
-     * @param page page
+     * @param page     page
      * @param userName userName
      * @return user IPage
      */
@@ -126,9 +127,10 @@ public interface UserMapper extends BaseMapper<User> {
      * query user by token
      *
      * @param token token
+     * @param now   now date
      * @return user
      */
-    User queryUserByToken(@Param("token") String token);
+    User queryUserByToken(@Param("token") String token, @Param("now") Date 
now);
 
     /**
      * query user by queue name
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml
index b105679970..e38688939c 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/UserMapper.xml
@@ -97,7 +97,7 @@
             <property name="alias" value="u"/>
         </include>
         from t_ds_user u ,t_ds_access_token t
-        where u.id = t.user_id and token=#{token} and t.expire_time > NOW()
+        where u.id = t.user_id and token=#{token} and t.expire_time > #{now}
     </select>
     <select id="queryUserListByQueue" 
resultType="org.apache.dolphinscheduler.dao.entity.User">
         select
diff --git 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UserMapperTest.java
 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UserMapperTest.java
index 0c66dd2486..1fd07f94c4 100644
--- 
a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UserMapperTest.java
+++ 
b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/UserMapperTest.java
@@ -303,7 +303,7 @@ public class UserMapperTest extends BaseDaoTest {
         //insertOneAccessToken
         AccessToken accessToken = insertOneAccessToken(user);
         //queryUserByToken
-        User userToken = userMapper.queryUserByToken(accessToken.getToken());
+        User userToken = userMapper.queryUserByToken(accessToken.getToken(), 
new Date());
         Assert.assertEquals(userToken, user);
 
     }

Reply via email to