From b28c50915c546b21a7cf4609b41dae60c352b8d3 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期三, 12 六月 2024 11:36:26 +0800
Subject: [PATCH] 修改引用包
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java | 101 ++++++--------------------------------------------
1 files changed, 13 insertions(+), 88 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
index 17aa5b1..5d8706a 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
@@ -19,10 +19,7 @@
import com.vci.starter.web.pagemodel.RequestClientInfo;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.pagemodel.TokenVO;
-import com.vci.starter.web.util.ApplicationContextProvider;
-import com.vci.starter.web.util.JwtUtils;
-import com.vci.starter.web.util.Md5;
-import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.starter.web.util.*;
import com.vci.web.bo.LoginResultBO;
import com.vci.web.constant.CacheNameConstant;
import com.vci.web.dto.LoginUserDTO;
@@ -142,15 +139,17 @@
}
//闇�瑕佺湅鐪嬫槸鍚﹀凡缁忕櫥褰曚簡
- String loginKey = CacheNameConstant.cacheKey(CacheNameConstant.VCI_USER_LOGIN, userDTO.getUserId());
- if(redisService.hasKey(loginKey) && !userDTO.isForceLogin() && securityManageProperties.isUserOneLogin()){
+ String userIdTokenKey = CacheNameConstant.cacheKey(CacheNameConstant.USERID_TOKEN_KEY, userDTO.getUserId().trim());
+ if(redisService.hasKey(userIdTokenKey) && !userDTO.isForceLogin() && securityManageProperties.isUserOneLogin()){
loginResult.setFailCode(USER_IS_LOGINED);
loginResult.setFailMsg("褰撳墠鐢ㄦ埛宸茬粡鍦ㄥ叾浠栧湴鏂圭櫥褰曪紒");
return loginResult;
}
//璇存槑宸茬粡鐧诲綍浜嗭紝閭e簲璇ュ彇娑堝師鏉ョ殑鐧诲綍
- if (redisService.hasKey(loginKey) && userDTO.isForceLogin() && securityManageProperties.isUserOneLogin()) {
- redisService.deleteObject(CacheNameConstant.VCI_USER_LOGIN);
+ if (redisService.hasKey(userIdTokenKey) && userDTO.isForceLogin() && securityManageProperties.isUserOneLogin()) {
+ String tokenKey = redisService.getCacheObject(userIdTokenKey);
+ redisService.deleteObject(tokenKey);
+ redisService.deleteObject(userIdTokenKey);
}
//2.鑾峰彇鐢ㄦ埛鐨勫璞�.
@@ -308,10 +307,10 @@
loginResult.setSuccess(true);
sessionInfo.setToken(Md5.md5(VciBaseUtil.getPk() + "_" + user.getId()));
- loginResult.setSessionInfo(sessionInfo);
//娣诲姞鍒颁細璇濅俊鎭�
- saveSessionInfo(sessionInfo);
+ TokenVO tokenVO = saveSessionInfo(sessionInfo);
+ loginResult.setTokenVO(tokenVO);
return loginResult;
}
@@ -322,14 +321,7 @@
* @Return com.vci.frameworkcore.pagemodel.SmUserVO
*/
private SmUserVO getUserByUserId(String userId) {
- String userKey = CacheNameConstant.cacheKey(CacheNameConstant.VCI_USER,userId);
- String userOid = redisService.getCacheObject(userKey);
- String oidKey = CacheNameConstant.cacheKey(CacheNameConstant.VCI_USER_OID, userOid);
- SmUserVO userVO = redisService.getCacheObject(oidKey);
- if(userVO == null || StringUtils.isBlank(userVO.getOid())){
- userVO = userQueryService.getUserByUserId(userId);
- }
- return userVO;
+ return userQueryService.getUserByUserId(userId);
}
@@ -403,16 +395,11 @@
* 淇濆瓨浼氳瘽淇℃伅
* @param sessionInfo 浼氳瘽淇℃伅
*/
- private void saveSessionInfo(SessionInfo sessionInfo){
+ private TokenVO saveSessionInfo(SessionInfo sessionInfo){
if(sessionForLogin == null){
throw new VciBaseException("娌℃湁閰嶇疆浼氳瘽瀛樺偍鐨勬湇鍔�");
}
- //灏嗘潈闄愪俊鎭紝鏀惧叆redis缂撳瓨涓�備互闃叉session涓殑淇℃伅杩囧锛屽瓨鍏ユ暟鎹簱涓嚭鐜伴敊璇�
- redisService.setCacheList(sessionInfo.getToken(),sessionInfo.getFunctionOids());
- redisService.expire(sessionInfo.getToken(), 1, TimeUnit.HOURS);
-
- sessionInfo.setFunctionOids(new ArrayList<>());
- sessionForLogin.saveSessionInfo(sessionInfo);
+ return sessionForLogin.createToken(sessionInfo);
}
/**
@@ -462,6 +449,7 @@
sessionInfo.setRtxNo(user.getRtxNo());
sessionInfo.setIMId(user.getIMNo());
sessionInfo.setPortalId(user.getId());
+ sessionInfo.setLastLoginTime(user.getLastLoginTime()!=null?user.getLastLoginTime().getTime(): VciDateUtil.getNowTime());
}
/**
@@ -497,69 +485,6 @@
}
/**
- * 鍒涘缓璁稿彲鐨勪俊鎭�
- *
- * @param sessionInfo session鐨勪俊鎭�
- * @return 璁稿彲淇℃伅
- */
- @Override
- public TokenVO createToken(SessionInfo sessionInfo) {
- return createToken(TokenKeyConstant.TOKEN_KEY_PREFIX_IN_REDIS, sessionInfo);
- }
-
- /**
- * 鍒涘缓璁稿彲鐨勪俊鎭�
- * @param key token鍦╮edis涓殑key
- * @param sessionInfo session鐨勪俊鎭�
- * @return 璁稿彲淇℃伅
- */
- @Override
- public TokenVO createToken(String key, SessionInfo sessionInfo) {
- if(StringUtils.isBlank(sessionInfo.getToken())) {
- String token = Md5.md5(VciBaseUtil.getPk() + "_" + sessionInfo.getUserId());
- sessionInfo.setToken(token);
- }
- if(StringUtils.isBlank(key)){
- key = TokenKeyConstant.TOKEN_KEY_PREFIX_IN_REDIS;
- }
- refreshToken(key, sessionInfo);
- Map<String,Object> claimsMap = new HashMap<>();
- claimsMap.put(TokenKeyConstant.JWT_TOKEN_KEY,sessionInfo.getToken());
- claimsMap.put(TokenKeyConstant.JWT_USER_KEY,sessionInfo.getUserOid());
- claimsMap.put(TokenKeyConstant.JWT_USER_NAME_KEY,sessionInfo.getUserName());
- claimsMap.put(TokenKeyConstant.JWT_USER_CODE_KEY,sessionInfo.getUserId());
- TokenVO tokenVO = new TokenVO();
- tokenVO.setAccessToken(JwtUtils.createToken(claimsMap));
- tokenVO.setExpireTime(TokenKeyConstant.EXPIRATION);
- return tokenVO;
- }
-
- /**
- * 鍒锋柊token
- * @param sessionInfo session鐨勪俊鎭�
- */
- @Override
- public void refreshToken(SessionInfo sessionInfo) {
- refreshToken(TokenKeyConstant.TOKEN_KEY_PREFIX_IN_REDIS, sessionInfo);
- }
-
- /**
- * 鍒锋柊token
- * @param key token鍦╮edis涓殑key
- * @param sessionInfo session鐨勪俊鎭�
- */
- @Override
- public void refreshToken(String key, SessionInfo sessionInfo) {
- if(sessionInfo!=null && StringUtils.isNotBlank(sessionInfo.getToken())){
- if(StringUtils.isBlank(key)){
- key = TokenKeyConstant.TOKEN_KEY_PREFIX_IN_REDIS;
- }
- String redisKey = key + sessionInfo.getToken();
- redisService.setCacheObject(redisKey, sessionInfo, webProperties.getClientSessionAliveMax()!=0?webProperties.getClientSessionAliveMax(): TokenKeyConstant.EXPIRATION, TimeUnit.MINUTES);
- }
- }
-
- /**
* 鑾峰彇鐧诲綍閿欒鐮�
* @param chkRes 骞冲彴鐧诲綍鏍¢獙缁撴灉
* @Return java.lang.String
--
Gitblit v1.10.0