From 321379873e71c9b6e8bb4fc2d648b59d01055fd4 Mon Sep 17 00:00:00 2001 From: HuangXin Date: Sun, 13 Sep 2020 09:54:35 +0800 Subject: [PATCH] =?UTF-8?q?OCT=20REM:=201.=20=E4=BF=AE=E6=AD=A3=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=97=B6token=E8=B6=85=E6=97=B6=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E5=B8=B8=E5=AF=BC=E8=87=B4token=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E6=9B=B4=E6=96=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/impl/UserAccountManagerImpl.java | 17 +++++++++++------ .../com/dispose/mapper/UserAccountMapper.java | 5 ++--- .../service/impl/UserAccountServiceImpl.java | 16 ++++++++-------- src/main/resources/mappers/UserAccount.xml | 4 ++-- .../test/dev/mapper/UserAccountMapperTest.java | 15 +++++++-------- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/dispose/manager/impl/UserAccountManagerImpl.java b/src/main/java/com/dispose/manager/impl/UserAccountManagerImpl.java index 5542aa79..d7b0a61d 100644 --- a/src/main/java/com/dispose/manager/impl/UserAccountManagerImpl.java +++ b/src/main/java/com/dispose/manager/impl/UserAccountManagerImpl.java @@ -129,14 +129,15 @@ public class UserAccountManagerImpl implements UserAccountManager { } // 更新访问时间 - user.setLastAccess(userAccountMapper.upgradeLastAccessTime(username)); + userAccountMapper.upgradeLastAccessTime(username); + user.setLastAccess(Helper.getCurrentDatetime()); } else { // 调用函数前确保用户一定存在 user = userAccountMapper.getUserByName(username); // 超时或者以前未登录 - if (tokenTimeout(user.getToken()) || user.getToken().length() == 0) { + if (tokenTimeout(user.getLastAccess()) || user.getToken().length() == 0) { token = createUserToken(username); userAccountMapper.upgradeToken(username, token); log.info("Refresh {} token {} at {}", username, user.getToken(), user.getLastAccess()); @@ -145,8 +146,10 @@ public class UserAccountManagerImpl implements UserAccountManager { log.info("Get {} token:{}", username, token); } + userAccountMapper.upgradeLastAccessTime(username); + // 更新访问时间 - user.setLastAccess(userAccountMapper.upgradeLastAccessTime(username)); + user.setLastAccess(Helper.getCurrentDatetime()); // 更新用户token user.setToken(token); @@ -254,7 +257,8 @@ public class UserAccountManagerImpl implements UserAccountManager { return ErrorCode.ERR_TOKENTIMEOUT; } else { // 更新用户最后一次访问时间戳 - user.setLastAccess(userAccountMapper.upgradeLastAccessTime(user.getUsername())); + userAccountMapper.upgradeLastAccessTime(user.getUsername()); + user.setLastAccess(Helper.getCurrentDatetime()); // 缓存当前用户token userAccountCache.put(token, user); @@ -270,7 +274,8 @@ public class UserAccountManagerImpl implements UserAccountManager { return ErrorCode.ERR_TOKENTIMEOUT; } else { // 更新用户最后一次访问时间戳 - user.setLastAccess(userAccountMapper.upgradeLastAccessTime(user.getUsername())); + userAccountMapper.upgradeLastAccessTime(user.getUsername()); + user.setLastAccess(Helper.getCurrentDatetime()); return ErrorCode.ERR_OK; } @@ -449,7 +454,7 @@ public class UserAccountManagerImpl implements UserAccountManager { return (System.currentTimeMillis() - Helper.getTimestampMilliSecond(lastAccess)) >= AuthConfigValue.TOKEN_EXPIRED_TIME_MS; } catch (Exception ex) { - return false; + return true; } } } diff --git a/src/main/java/com/dispose/mapper/UserAccountMapper.java b/src/main/java/com/dispose/mapper/UserAccountMapper.java index f4f697d0..54d9b2fe 100644 --- a/src/main/java/com/dispose/mapper/UserAccountMapper.java +++ b/src/main/java/com/dispose/mapper/UserAccountMapper.java @@ -87,12 +87,11 @@ public interface UserAccountMapper { void upgradeLoginTime(@Param("username") String username); /** - * Upgrade last access time string. + * Upgrade last access time. * * @param username the username - * @return the string */ - String upgradeLastAccessTime(@Param("username") String username); + void upgradeLastAccessTime(@Param("username") String username); /** * Upgrade token. diff --git a/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java b/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java index b4dce882..17c65d86 100644 --- a/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java +++ b/src/main/java/com/dispose/service/impl/UserAccountServiceImpl.java @@ -61,7 +61,6 @@ public class UserAccountServiceImpl implements UserAccountService { return new MulReturnType<>(ErrorCode.ERR_UNSUPPORT, ""); } - userAccountManager.upgradeLoginTime(username); UserAccount loginUser = userAccountManager.getUserByName(username); // 该用户是否存在 @@ -100,9 +99,12 @@ public class UserAccountServiceImpl implements UserAccountService { } } - return MulReturnType.builder() - .firstParam(ErrorCode.ERR_OK) - .secondParam(userAccountManager.getUserToken(username)).build(); + String token = userAccountManager.getUserToken(username); + + // 刷新用户登录时间 + userAccountManager.upgradeLoginTime(username); + + return new MulReturnType<>(ErrorCode.ERR_OK, token); } /** @@ -181,10 +183,8 @@ public class UserAccountServiceImpl implements UserAccountService { .firstParam(err).build(); } - return MulReturnType.builder() - .firstParam(ErrorCode.ERR_OK) - .secondParam(userAccountManager.createUserAccount(username, password, optUser.getUsername())) - .build(); + return new MulReturnType<>(ErrorCode.ERR_OK, userAccountManager.createUserAccount(username, password, + optUser.getUsername())); } /** diff --git a/src/main/resources/mappers/UserAccount.xml b/src/main/resources/mappers/UserAccount.xml index 9564d851..9c6afe80 100644 --- a/src/main/resources/mappers/UserAccount.xml +++ b/src/main/resources/mappers/UserAccount.xml @@ -49,12 +49,12 @@ AND LENGTH(#{token}) > 0 - + UPDATE diff --git a/src/test/java/com/dispose/test/dev/mapper/UserAccountMapperTest.java b/src/test/java/com/dispose/test/dev/mapper/UserAccountMapperTest.java index d3608c0a..815777c2 100644 --- a/src/test/java/com/dispose/test/dev/mapper/UserAccountMapperTest.java +++ b/src/test/java/com/dispose/test/dev/mapper/UserAccountMapperTest.java @@ -1,6 +1,5 @@ package com.dispose.test.dev.mapper; -import com.dispose.common.Helper; import com.dispose.common.ObjectStatus; import com.dispose.mapper.UserAccountMapper; import com.dispose.pojo.entity.UserAccount; @@ -117,13 +116,13 @@ public class UserAccountMapperTest { @Test public void a5_upgradeUserAccess() { - String dt = userAccountMapper.upgradeLastAccessTime("admin"); - - log.debug("Upgrade datetime: {}", dt); - - if(dt!=null){ - Assert.assertTrue(Helper.getTimestampDiffNow(dt) < 2); - } +// String dt = userAccountMapper.upgradeLastAccessTime("admin"); +// +// log.debug("Upgrade datetime: {}", dt); +// +// if(dt!=null){ +// Assert.assertTrue(Helper.getTimestampDiffNow(dt) < 2); +// } } @Test