ludc
2024-09-26 085df90e488067783759dcd63cdb5fb43a51ff1f
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
@@ -128,6 +128,11 @@
    private PlatformClientUtil platformClientUtil;
    /**
     * 当前登录的用户总数key
     */
    private static final String CURRENT_LOGGED_USERS_KEY = "current_logged_users";
    /**
     * 执行登录
     * @param userDTO 登录信息
     * @param clientInfo 请求的客户端的信息
@@ -167,6 +172,7 @@
            String tokenKey = redisService.getCacheObject(userIdTokenKey);
            redisService.deleteObject(tokenKey);
            redisService.deleteObject(userIdTokenKey);
            redisService.userLogout(CURRENT_LOGGED_USERS_KEY,userDTO.getUserId());
        }
        //3.获取用户的对象(对象中包含角色部门还有密码策略信息(当前用户没设置密码策略就是取的默认密码策略))
@@ -242,6 +248,8 @@
        sessionInfo.setToken(token);
        //初始化平台的token
        sessionForLogin.initInvocationInfo(sessionInfo);
        //记录当前登录人数的总数
        redisService.userLogin(CURRENT_LOGGED_USERS_KEY,userDTO.getUserId());
        //拷贝用户到新的session会话中
        copyUser2SessionInfo(user, sessionInfo, userDTO.getLangCode());
        //拷贝请求信息到session会话中
@@ -558,6 +566,8 @@
                }
            });
        }
        //清除存当前登录的用户(总数-1)
        redisService.userLogout(CURRENT_LOGGED_USERS_KEY,WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId());
        sessionForLogin.logout(userToken);
        if(!CollectionUtils.isEmpty(logoutpluginBeanMap)){
            logoutpluginBeanMap.forEach((k,v) -> {