/* * (non-Javadoc) * * @see * javax.servlet.http.HttpSessionBindingListener#valueUnbound(javax.servlet * .http.HttpSessionBindingEvent) */ public void valueUnbound(HttpSessionBindingEvent event) { // 刷新页面的时候,TSysUser为null,所以要判断一下 LoginUserVO user = (LoginUserVO) event.getValue(); if (user != null) { /** ********************** UniId begin ******************************** */ // 通知统一身份认证服务中心。此处的实现是通过数据库 boolean singleLogin = PropDbUtil.getBoolean(IdConstants.SINGLE_LOGIN); // 是否开启了同一用户同一时间所有节点上只能登录一个的要求 if (singleLogin) { String sql = SQLConfigUtil.getSql("sql.loginUserVO.delete"); DBUtil.executeSQL(sql, user.getUserloginid()); // 移除在线用户表中用户信息 } /** ********************** UniId end ******************************** */ onlineUsers.remove(event.getSession().getId()); if (LOG.isInfoEnabled()) { LOG.info( user.getUsername() + "[账号:" + user.getUserloginid() + "]" + " 退出系统" + ",目前有" + getCurrentOnlineCount() + "个用户已登录"); } } else { if (LOG.isInfoEnabled()) { LOG.info(" 一个用户刷新系统" + ",目前有" + getCurrentOnlineCount() + "个用户已登录"); } } }
/* * (non-Javadoc) * * @see * javax.servlet.http.HttpSessionBindingListener#valueBound(javax.servlet * .http.HttpSessionBindingEvent) */ public void valueBound(HttpSessionBindingEvent event) { LoginUserVO user = (LoginUserVO) event.getValue(); onlineUsers.put(event.getSession().getId(), user); if (LOG.isInfoEnabled()) { LOG.info( user.getUsername() + "[账号:" + user.getUserloginid() + "]" + " 登录系统" + ",目前有" + getCurrentOnlineCount() + "个用户已登录"); } /** ********************** UniId begin ******************************** */ // 通知统一身份认证服务中心。此处的实现是通过数据库 boolean singleLogin = PropDbUtil.getBoolean(IdConstants.SINGLE_LOGIN); // 是否开启了同一用户同一时间所有节点上只能登录一个的要求 if (singleLogin) { try { String sql = SQLConfigUtil.getSql("sql.loginUserVO.count"); int onlineNum = DBUtil.count(sql, getUserloginid()); if (onlineNum == 0) { sql = SQLConfigUtil.getSql("sql.loginUserVO.insert"); DBUtil.executeSQL( sql, getUserloginid(), getClientIP(), getServerIP(), DateUtil.currentTime()); } } catch (SQLException e) { LOG.error(e); } } /** ********************** UniId end ******************************** */ }