From 898c6142dfff5c0aaf091d1a5f287a427b175e9c Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期一, 17 六月 2024 09:22:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 10 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 5d8706a..1c81410 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 @@ -1,8 +1,12 @@ package com.vci.web.service.impl; -import com.vci.client.logon.base.LogonHandler; +import com.vci.client.mw.ClientSessionUtility; +import com.vci.corba.common.PLException; +import com.vci.corba.common.data.InvocationInfo; +import com.vci.corba.framework.data.DeptInfo; import com.vci.corba.framework.data.LoginResult; import com.vci.corba.framework.data.LoginState; +import com.vci.corba.framework.data.MachineInfo; import com.vci.frameworkcore.ajaxTask.SmUserUnLockTask; import com.vci.frameworkcore.ajaxTask.SmUserUnLockTaskManager; import com.vci.frameworkcore.compatibility.ISmFunctionQueryService; @@ -13,7 +17,6 @@ import com.vci.starter.web.annotation.bus.VciLoginAfter; import com.vci.starter.web.annotation.bus.VciLogoutBefore; import com.vci.starter.web.annotation.bus.VciLogoutPlugin; -import com.vci.starter.web.constant.TokenKeyConstant; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.interceptor.VciSessionForLoginI; import com.vci.starter.web.pagemodel.RequestClientInfo; @@ -30,16 +33,14 @@ import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.lang.reflect.Method; -import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.Map; -import java.util.concurrent.TimeUnit; import static com.vci.frameworkcore.constant.FrameWorkBusLangCodeConstant.*; @@ -171,16 +172,28 @@ } //4銆佽皟鐢ㄥ钩鍙扮櫥褰曟帴鍙o紝杩涜鐧诲綍 - LogonHandler handler = new LogonHandler(); + MachineInfo machine = getMachieInfo(clientInfo); + machine.country = clientInfo.getCountry(); + machine.language = clientInfo.getLanguage(); + machine.osUser = clientInfo.getOsUser(); + machine.machine = clientInfo.getMachine(); + + String token = null; try { - LoginResult chkRes = handler.checkLogin(userDTO.getUserId(), userDTO.getPassword()); + LoginResult chkRes = platformClientUtil.getFrameworkService().checkLogin(userDTO.getUserId(),userDTO.getPassword(), machine); loginResult.setFailCode(getErrorCode(chkRes)); loginResult.setFailMsgArray(new String[]{userDTO.getUserId(), String.valueOf(chkRes.auxInfo)}); if(chkRes.state == LoginState.Error || chkRes.state == LoginState.Locked || chkRes.state == LoginState.Freeze){ return loginResult; } + token = chkRes.token; } catch (Exception e) { loginResult.setFailCode(SYSTEM_ERROR); + loginResult.setFailMsgArray(new String[]{userDTO.getUserId()}); + return loginResult; + } + if(StringUtils.isBlank(token)){ + loginResult.setFailMsg(TOKEN_EMPTY); loginResult.setFailMsgArray(new String[]{userDTO.getUserId()}); return loginResult; } @@ -283,10 +296,25 @@ user.setPwdWrongCount(0); SessionInfo sessionInfo = new SessionInfo(); + sessionInfo.setToken(token); + + //鍒濆鍖栧钩鍙扮殑token + sessionForLogin.initInvocationInfo(sessionInfo); + //鎷疯礉鐢ㄦ埛鐨勬柊鍒皊ession浼氳瘽涓� copyUser2SessionInfo(user, sessionInfo, userDTO.getLangCode()); //鎷疯礉璇锋眰淇℃伅鍒皊ession浼氳瘽涓� copyRequest2SessionInfo(clientInfo, sessionInfo); + + //鑾峰彇浜哄憳鎵�灞炵殑閮ㄩ棬淇℃伅 + try { + DeptInfo deptInfo = platformClientUtil.getFrameworkService().fetchDeptByUserId(user.getOid()); + sessionInfo.setDeptOid(deptInfo.id); + sessionInfo.setDeptName(deptInfo.name); + sessionInfo.setDeptNum(deptInfo.num); + } catch (PLException e) { + throw new VciBaseException("鑾峰彇鐢ㄦ埛鎵�灞為儴闂ㄥけ璐�:"+e.getMessage()); + } /** //鏌ヨ鎵�鏈夌殑瑙掕壊 List<SmRoleVO> roleVOList = roleQueryService.listRoleByUserOid(user.getOid(), null); @@ -305,14 +333,21 @@ sessionInfo.setFunctionOids(new ArrayList()); }*/ - loginResult.setSuccess(true); - sessionInfo.setToken(Md5.md5(VciBaseUtil.getPk() + "_" + user.getId())); - //娣诲姞鍒颁細璇濅俊鎭� TokenVO tokenVO = saveSessionInfo(sessionInfo); loginResult.setTokenVO(tokenVO); + loginResult.setSuccess(true); return loginResult; + } + + private MachineInfo getMachieInfo(RequestClientInfo clientInfo) { + MachineInfo machine = new MachineInfo(); + machine.country = clientInfo.getCountry(); + machine.language = clientInfo.getLanguage(); + machine.osUser = clientInfo.getOsUser(); + machine.machine = clientInfo.getMachine(); + return machine; } /** @@ -399,6 +434,7 @@ if(sessionForLogin == null){ throw new VciBaseException("娌℃湁閰嶇疆浼氳瘽瀛樺偍鐨勬湇鍔�"); } + WebThreadLocalUtil.setCurrentUserSessionInfoInThread(sessionInfo); return sessionForLogin.createToken(sessionInfo); } -- Gitblit v1.9.3