一哥们叫我写篇单点登录。我就记录一下我们项目中的单点登录实现吧,其实超级简单。
项目中通常都用的记录session来控制单点登录的。直接上代码吧
/** * sesssion列表 */ private static Map<String, HttpSession> sessionMap = new HashMap<String, HttpSession>(); /** * *方法描述:单点登录 * @param session * @param userName */ public synchronized static void singleLogin(HttpSession session, String userName) { if (sessionMap.containsKey(userName)) { HttpSession ses = (HttpSession) sessionMap.get(userName); try { // session的id值不相同才将原session作废 if (!(session.getId()).equals(ses.getId())) { ses.invalidate(); } } catch (Exception e) { e.printStackTrace(); } } sessionMap.remove(userName); sessionMap.put(userName, session); } /** * *方法描述:退出 * @param session * @param userName */ public synchronized static void logout(HttpSession session, String userName) { if (userName!=null) { if (sessionMap.containsKey(userName)) { try { session.invalidate(); sessionMap.remove(userName); } catch (Exception e) { e.printStackTrace(); } } } }
OK了。实现单点登录的方法还是挺多的。条条大路通罗马,不吝赐教
时间: 2024-08-11 15:08:55