@WebMethod public ModelAndView login(User user, String _site) { ModelAndView mv = new ModelAndView(); String pwd = SecurityHelper.Md5(user.pwd); User po = dao.getUniqueByParams( User.class, new String[] {"account", "pwd", "_site"}, new Object[] {user.account, pwd, _site}); if (po == null) { throw new GException(PlatformExceptionType.BusinessException, "用户名或密码不正确。"); } po.lasttime = new Date(); dao.saveOrUpdate(po); ThreadSession.getHttpSession().setAttribute(MakesiteConstant.Session_Attr_User, po); List<Map> result = dao.listAsMap( "select ra.authId as authId from UserRole ur ,RoleAuth ra where ur.roleId=ra.roleId and ur.uid=?", po.id); StringBuilder authList = new StringBuilder(""); for (Map map : result) { authList.append(map.get("authId").toString()); } ThreadSession.getHttpSession() .setAttribute(MakesiteConstant.Session_Auth_List, authList.toString()); String serverName = DataHelper.getServerName(ThreadSession.HttpServletRequest.get()); if (!onlineUserCountMap.containsKey(serverName)) { onlineUserCountMap.put(serverName, 1); } else { onlineUserCountMap.put(serverName, onlineUserCountMap.get(serverName) + 1); } String text; try { text = FileUtils.readFileToString( new File( ThreadSession.HttpServletRequest.get().getServletContext().getRealPath("/") + File.separator + "auths.json"), "utf8"); JSONArray jarr = JSONArray.fromObject(text); List<String> urlList = new ArrayList<String>(); for (int i = 0; i < jarr.size(); i++) { JSONObject jobj = jarr.getJSONObject(i); if (authList.toString().contains(jobj.getString("id"))) { continue; } String urls = jobj.getString("urls"); for (String url : urls.split(",")) { urlList.add(url); } } ThreadSession.getHttpSession().setAttribute(MakesiteConstant.Session_Auth_Urls, urlList); } catch (IOException e) { e.printStackTrace(); } return mv; }
@WebMethod public ModelAndView logout() { ModelAndView mv = new ModelAndView(); ThreadSession.getHttpSession().removeAttribute("user"); ThreadSession.getHttpSession().removeAttribute(MakesiteConstant.Session_Auth_List); mv.redirect = ThreadSession.HttpServletRequest.get().getServletContext().getContextPath() + "/index.jsp"; String serverName = DataHelper.getServerName(ThreadSession.HttpServletRequest.get()); if (onlineUserCountMap.containsKey(serverName)) { onlineUserCountMap.put(serverName, onlineUserCountMap.get(serverName) - 1); } return mv; }