diff --git a/power-admin/src/main/java/com/manage/controller/FontController.java b/power-admin/src/main/java/com/manage/controller/FontController.java index 046c51d..20110a1 100644 --- a/power-admin/src/main/java/com/manage/controller/FontController.java +++ b/power-admin/src/main/java/com/manage/controller/FontController.java @@ -247,15 +247,13 @@ public class FontController { @ResponseBody public Msg checkToken(String token) throws Exception{ if(StringUtils.isNotBlank(token) && StringUtils.isNotBlank(token) ) { - token = MD5.JM(Base64.decode(token)); Cache cache = CacheManager.getCacheInfo(token); if (cache == null) { return Msg.fail("token已过期或不存在"); + }else{ + Power_UserVo user = (Power_UserVo)cache.getValue(); + CacheManager.putCache(token,new Cache(user,System.currentTimeMillis(),TOKEN_EXPIRE_TIME*1000)); } - //更新过期时间 - Power_UserVo user = (Power_UserVo) cache.getValue(); - String date = String.valueOf(DateUtils.getDate()); - CacheManager.putCache(token,new Cache(date,user,TOKEN_EXPIRE_TIME)); }else{ return Msg.fail("token不能为空"); } @@ -284,43 +282,43 @@ public class FontController { if(StringUtils.isBlank(sysFlag)){ return Msg.fail("sysFlag不能为空!"); } - token = MD5.JM(Base64.decode(token)); Cache cacheInfo = CacheManager.getCacheInfo(token); - Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); - if(null != user){ - List menuList = user.getMenuList(); - List list = new ArrayList<>(); - Set menus = new TreeSet<>(); - if(null != menuList && !menuList.isEmpty()){ - for (User_Dept_Menu deptMenu : menuList) { - String menuSysFlag = deptMenu.getSysFlag(); - if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { - list.add(deptMenu); - if (StringUtils.isNotBlank(deptMenu.getMethod())) { - menus.add(deptMenu.getMenuUrl()); + if(null != cacheInfo){ + Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); + if(null != user) { + List menuList = user.getMenuList(); + List list = new ArrayList<>(); + Set menus = new TreeSet<>(); + if (null != menuList && !menuList.isEmpty()) { + for (User_Dept_Menu deptMenu : menuList) { + String menuSysFlag = deptMenu.getSysFlag(); + if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { + list.add(deptMenu); + if (StringUtils.isNotBlank(deptMenu.getMethod())) { + menus.add(deptMenu.getMenuUrl()); + } } } } + user.setMenuList(list); + user.setMenus(menus); + UserVo userVo = new UserVo(); + BeanUtils.copyProperties(user, userVo); + //查询用户集合 + List userList = new ArrayList<>(); + Integer roleId = userVo.getRoleId(); + if (roleId == 0) { + userList = userMapper.selectUserIdAndUserNameList(null); + } else { + userList = userMapper.selectUserIdAndUserNameList(userVo.getUserId()); + } + //设置用户集合 + userVo.setUserList(userList); + CacheManager.addExcCount("noExc"); + return Msg.success().add("user", userVo); } - user.setMenuList(list); - user.setMenus(menus); - UserVo userVo = new UserVo(); - BeanUtils.copyProperties(user,userVo); - //查询用户集合 - List userList = new ArrayList<>(); - Integer roleId = userVo.getRoleId(); - if(roleId == 0){ - userList = userMapper.selectUserIdAndUserNameList(null); - }else{ - userList = userMapper.selectUserIdAndUserNameList(userVo.getUserId()); - } - //设置用户集合 - userVo.setUserList(userList); - CacheManager.addExcCount("noExc"); - return Msg.success().add("user",userVo); - }else{ - return Msg.fail("token已失效"); } + return Msg.fail("token已失效"); } /** @@ -338,28 +336,31 @@ public class FontController { */ @RequestMapping(value = "getMenuByToken",method = RequestMethod.POST) @ResponseBody - public Msg getMenuByToken(String token,String sysFlag) throws Exception{ - if(StringUtils.isBlank(token)){ + public Msg getMenuByToken(String token,String sysFlag) throws Exception { + if (StringUtils.isBlank(token)) { return Msg.fail("token不能为空!"); } - if(StringUtils.isBlank(sysFlag)){ + if (StringUtils.isBlank(sysFlag)) { return Msg.fail("sysFlag不能为空!"); } - token = MD5.JM(Base64.decode(token)); Cache cacheInfo = CacheManager.getCacheInfo(token); - Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); - List menuList = user.getMenuList(); - List list = new ArrayList<>(); - if(null != menuList && !menuList.isEmpty()){ - for (User_Dept_Menu dept_menu : menuList) { - String menuSysFlag = dept_menu.getSysFlag(); - if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { - list.add(dept_menu); + if (null != cacheInfo) { + Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); + List menuList = user.getMenuList(); + List list = new ArrayList<>(); + if (null != menuList && !menuList.isEmpty()) { + for (User_Dept_Menu deptMenu : menuList) { + String menuSysFlag = deptMenu.getSysFlag(); + if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { + list.add(deptMenu); + } } } + CacheManager.addExcCount("noExc"); + return Msg.success().add("list", list); + }else{ + return Msg.fail("token已失效"); } - CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); } /** @@ -395,9 +396,7 @@ public class FontController { if(null == userVo){ return Msg.fail("用户名或密码不正确"); } - String date = String.valueOf(DateUtils.getDate()); - String token = Base64.encode(MD5.KL(date)); - + String token = UUID.randomUUID().toString(); List list = null; List menuList = new ArrayList<>(); Set menus = new TreeSet<>(); @@ -434,9 +433,9 @@ public class FontController { } } userVo.setRemark(powerDepts.toString()); - //移除缓存 - CacheManager.removeCacheByObject(userVo); - CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME)); + ActionScopeUtils.setSessionAttribute("token",token,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))); + ActionScopeUtils.setSessionAttribute("CURRENT_USER",user,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))); + CacheManager.putCache(token,new Cache(user,System.currentTimeMillis(),TOKEN_EXPIRE_TIME*1000)); return Msg.success().add("token",token); } diff --git a/power-admin/src/main/java/com/manage/controller/LoginController.java b/power-admin/src/main/java/com/manage/controller/LoginController.java index 51f10a0..08928a3 100644 --- a/power-admin/src/main/java/com/manage/controller/LoginController.java +++ b/power-admin/src/main/java/com/manage/controller/LoginController.java @@ -54,31 +54,22 @@ public class LoginController { Power_UserVo user = powerUserService.findPowerUserByUserNameAndUserPwd(powerUser); //添加进操作日志 Power_Log log = new Power_Log(); - if( user != null){ + if(user != null){ //如处于登录状态,先清除缓存 //CacheManager.removeCacheByObject(user); //记住 MyCookieUtil.remember(request, response); - - //清除用户登录错误次数缓存 - CacheManager.clearOnly(powerUser.getUserName()); //存session密码置空 //是否记住密码功能 MyCookieUtil.remember(request, response); //设置token缓存 - String date = String.valueOf(DateUtils.getDate()); - String token = Base64.encode(MD5.KL(date)); - - + String token = UUID.randomUUID().toString(); //查询归属医院 - /* long start5 = System.currentTimeMillis(); + /*long start5 = System.currentTimeMillis(); Power_User_Dict powerUserDict = powerUserDictMapper.selectDictIdByUserId(user.getUserId()); long end5 = System.currentTimeMillis(); System.out.println("查询医院时间="+(end5-start5)/1000.0+"s"); user.setDictId(powerUserDict.getDictId());*/ - //科室id科室名 - ActionScopeUtils.setSessionAttribute("token",token,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000); - //设置用户登录次数缓存 //CacheManager.addloginUserCount(fmt.format(new Date()),user.getUserName()); CacheManager.addExcCount("noExc"); @@ -106,7 +97,6 @@ public class LoginController { } user.setMenuList(menuList); user.setMenus(menus); - //设置科室 StringBuilder powerDepts = new StringBuilder(); List powerDeptsList = power_deptService.selectByPrimaryKeys(user.getDeptId()); @@ -118,10 +108,12 @@ public class LoginController { } } user.setRemark(powerDepts.toString()); - + //清除用户登录错误次数缓存 + CacheManager.clearOnly(powerUser.getUserName()); //设置进缓存 - CacheManager.putCache(date,new Cache(date,user,TOKEN_EXPIRE_TIME)); - ActionScopeUtils.setSessionAttribute("CURRENT_USER",user,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000); + CacheManager.putCache(token,new Cache(user,System.currentTimeMillis(),TOKEN_EXPIRE_TIME*1000)); + ActionScopeUtils.setSessionAttribute("token",token,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))); + ActionScopeUtils.setSessionAttribute("CURRENT_USER",user,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))); return "redirect:gatewayPage"; }else{ //登录失败 @@ -133,9 +125,8 @@ public class LoginController { //叠加1 wrongNum += currentNum; } - //先清除后添加缓存 - CacheManager.clearOnly(powerUser.getUserName()); - CacheManager.putCache(powerUser.getUserName(),new Cache(powerUser.getUserName(),wrongNum)); + //添加缓存 + CacheManager.putCache(powerUser.getUserName(),new Cache(wrongNum)); log.setCreater(powerUser.getUserName()); log.setLogTitle("登录"); log.setLogContent("用户密码错误"); diff --git a/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java b/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java index 0d1de87..3fd7af8 100644 --- a/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java +++ b/power-admin/src/main/java/com/manage/interceptor/LoginInterceptor.java @@ -38,23 +38,18 @@ public class LoginInterceptor implements HandlerInterceptor { if(!"/".equals(url)){ parentUrl = "/"+s[1]; } - if(!"/getSessionRemainingTime".equals(parentUrl)){ - request.getSession().setAttribute(request.getSession().getId(),System.currentTimeMillis()); - } if (excludes(parentUrl, Constant.RELEASE_REQUEST)) { response.setHeader("Access-Control-Allow-Origin","*"); return true; }else{ String token = (String)request.getSession().getAttribute("token"); if(StringUtils.isNoneBlank(token)){ - token = MD5.JM(Base64.decode(token)); Cache cache = CacheManager.getCacheInfo(token); if (cache != null) { if(!"/getSessionRemainingTime".equals(parentUrl)) { - //更新过期时间 + //重新更新过期时间 Power_UserVo user = (Power_UserVo) cache.getValue(); - String date = String.valueOf(DateUtils.getDate()); - CacheManager.putCache(token, new Cache(date, user, TOKEN_EXPIRE_TIME)); + CacheManager.putCache(token, new Cache(user,System.currentTimeMillis(),TOKEN_EXPIRE_TIME*1000)); } return true; } diff --git a/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java b/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java index e35c81f..2bdadca 100644 --- a/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java +++ b/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java @@ -34,7 +34,6 @@ public class PowerWebServiceImpl implements PowerWebService { public String getInfosByUserId(String token,String sysFlag) { Power_UserWebServiceVo userWebServiceVo = new Power_UserWebServiceVo(); if(StringUtils.isNotBlank(token)){ - token = MD5.JM(Base64.decode(token)); Cache cache = CacheManager.getCacheInfo(token); if(cache != null){ Power_UserVo user = (Power_UserVo) cache.getValue(); diff --git a/power-admin/src/main/resources/config/config.properties b/power-admin/src/main/resources/config/config.properties index 1e6f2bd..6448767 100644 --- a/power-admin/src/main/resources/config/config.properties +++ b/power-admin/src/main/resources/config/config.properties @@ -4,8 +4,8 @@ releaseRequest = /login,/logout,/services,/font,/refuse,/swagger-ui.html,/webjars,/swagger-resources,/v2 ajaxRequest = none -#session\u8FC7\u671F\u65F6\u95F4 -TOKEN_EXPIRE_TIME = 1200000 +#session\u8FC7\u671F\u65F6\u95F4,\u5355\u4F4D\u79D2 +TOKEN_EXPIRE_TIME = 7200 ##################################################\u670D\u52A1\u5668ip########################################################## #\u901A\u7528\u670D\u52A1\u5668IP\u4E0E\u901A\u7528\u670D\u52A1\u5668\u7AEF\u53E3 diff --git a/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp b/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp index d332406..00850ec 100644 --- a/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp +++ b/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp @@ -148,7 +148,7 @@ } - + <%--hhhhhhhhhhhhhhhh--%> @@ -210,9 +210,9 @@
  • - diff --git a/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp b/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp index b85a035..78fbd67 100644 --- a/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp +++ b/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp @@ -31,7 +31,7 @@ overflow-y: hidden; } - + @@ -90,9 +90,9 @@
  • - diff --git a/power-admin/target/classes/com/manage/annotation/OptionalLog.class b/power-admin/target/classes/com/manage/annotation/OptionalLog.class deleted file mode 100644 index 7aad36e..0000000 Binary files a/power-admin/target/classes/com/manage/annotation/OptionalLog.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/annotation/RequiresPermissions.class b/power-admin/target/classes/com/manage/annotation/RequiresPermissions.class deleted file mode 100644 index 33e6d4b..0000000 Binary files a/power-admin/target/classes/com/manage/annotation/RequiresPermissions.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/config/CurrentUserResolver.class b/power-admin/target/classes/com/manage/config/CurrentUserResolver.class deleted file mode 100644 index 9175cd5..0000000 Binary files a/power-admin/target/classes/com/manage/config/CurrentUserResolver.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/config/WebServiceConfig.class b/power-admin/target/classes/com/manage/config/WebServiceConfig.class deleted file mode 100644 index f10ba94..0000000 Binary files a/power-admin/target/classes/com/manage/config/WebServiceConfig.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/DeptController.class b/power-admin/target/classes/com/manage/controller/DeptController.class deleted file mode 100644 index 5c9ec7b..0000000 Binary files a/power-admin/target/classes/com/manage/controller/DeptController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/ExportExcelController.class b/power-admin/target/classes/com/manage/controller/ExportExcelController.class deleted file mode 100644 index 26a85c2..0000000 Binary files a/power-admin/target/classes/com/manage/controller/ExportExcelController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/FontController.class b/power-admin/target/classes/com/manage/controller/FontController.class deleted file mode 100644 index 256e79a..0000000 Binary files a/power-admin/target/classes/com/manage/controller/FontController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/HasAnyPermission.class b/power-admin/target/classes/com/manage/controller/HasAnyPermission.class deleted file mode 100644 index 55e91c2..0000000 Binary files a/power-admin/target/classes/com/manage/controller/HasAnyPermission.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/LogAopAction.class b/power-admin/target/classes/com/manage/controller/LogAopAction.class deleted file mode 100644 index 23de19e..0000000 Binary files a/power-admin/target/classes/com/manage/controller/LogAopAction.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/LoginController.class b/power-admin/target/classes/com/manage/controller/LoginController.class deleted file mode 100644 index 56be45d..0000000 Binary files a/power-admin/target/classes/com/manage/controller/LoginController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/MethodLogQuartz.class b/power-admin/target/classes/com/manage/controller/MethodLogQuartz.class deleted file mode 100644 index 5d85d86..0000000 Binary files a/power-admin/target/classes/com/manage/controller/MethodLogQuartz.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/PageController.class b/power-admin/target/classes/com/manage/controller/PageController.class deleted file mode 100644 index d5efdf2..0000000 Binary files a/power-admin/target/classes/com/manage/controller/PageController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/PermissionsController.class b/power-admin/target/classes/com/manage/controller/PermissionsController.class deleted file mode 100644 index 98f5220..0000000 Binary files a/power-admin/target/classes/com/manage/controller/PermissionsController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/PermissionsException.class b/power-admin/target/classes/com/manage/controller/PermissionsException.class deleted file mode 100644 index 286b277..0000000 Binary files a/power-admin/target/classes/com/manage/controller/PermissionsException.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/Power_LogController.class b/power-admin/target/classes/com/manage/controller/Power_LogController.class deleted file mode 100644 index 3a8ecfa..0000000 Binary files a/power-admin/target/classes/com/manage/controller/Power_LogController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/Power_MenuController.class b/power-admin/target/classes/com/manage/controller/Power_MenuController.class deleted file mode 100644 index 8547089..0000000 Binary files a/power-admin/target/classes/com/manage/controller/Power_MenuController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/Power_MenuManageController.class b/power-admin/target/classes/com/manage/controller/Power_MenuManageController.class deleted file mode 100644 index 0e018de..0000000 Binary files a/power-admin/target/classes/com/manage/controller/Power_MenuManageController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/Power_NoticeController.class b/power-admin/target/classes/com/manage/controller/Power_NoticeController.class deleted file mode 100644 index 3789cc3..0000000 Binary files a/power-admin/target/classes/com/manage/controller/Power_NoticeController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/Power_Sys_DictController.class b/power-admin/target/classes/com/manage/controller/Power_Sys_DictController.class deleted file mode 100644 index 465fed3..0000000 Binary files a/power-admin/target/classes/com/manage/controller/Power_Sys_DictController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/RoleAndUserPowerController.class b/power-admin/target/classes/com/manage/controller/RoleAndUserPowerController.class deleted file mode 100644 index 1bdf038..0000000 Binary files a/power-admin/target/classes/com/manage/controller/RoleAndUserPowerController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/RoleController.class b/power-admin/target/classes/com/manage/controller/RoleController.class deleted file mode 100644 index 34c9511..0000000 Binary files a/power-admin/target/classes/com/manage/controller/RoleController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/T_MenuController.class b/power-admin/target/classes/com/manage/controller/T_MenuController.class deleted file mode 100644 index 6563d43..0000000 Binary files a/power-admin/target/classes/com/manage/controller/T_MenuController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/controller/UserController.class b/power-admin/target/classes/com/manage/controller/UserController.class deleted file mode 100644 index 9c47250..0000000 Binary files a/power-admin/target/classes/com/manage/controller/UserController.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/interceptor/LoginInterceptor.class b/power-admin/target/classes/com/manage/interceptor/LoginInterceptor.class deleted file mode 100644 index 3a39141..0000000 Binary files a/power-admin/target/classes/com/manage/interceptor/LoginInterceptor.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/interfaces/webservice/PowerWebService.class b/power-admin/target/classes/com/manage/interfaces/webservice/PowerWebService.class deleted file mode 100644 index 2a8e02b..0000000 Binary files a/power-admin/target/classes/com/manage/interfaces/webservice/PowerWebService.class and /dev/null differ diff --git a/power-admin/target/classes/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.class b/power-admin/target/classes/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.class deleted file mode 100644 index 4f38e3c..0000000 Binary files a/power-admin/target/classes/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.class and /dev/null differ diff --git a/power-service/src/main/java/com/manage/service/cache/Cache.java b/power-service/src/main/java/com/manage/service/cache/Cache.java index e9ba295..7803498 100644 --- a/power-service/src/main/java/com/manage/service/cache/Cache.java +++ b/power-service/src/main/java/com/manage/service/cache/Cache.java @@ -6,60 +6,40 @@ package com.manage.service.cache; * @Created by ljx */ public class Cache { - private String key;//缓存ID private Object value;//缓存数据 - private long timeOut;//更新时间 - private boolean expired; //是否终止 - public Cache() { - super(); - } - - public Cache(String key, Object value, long timeOut, boolean expired) { - this.key = key; - this.value = value; - this.timeOut = timeOut; - this.expired = expired; - } + private long loginMill;//登录毫秒数 + private long timeOut;//过期时间毫秒数 - public Cache(String key, Object value, long timeOut) { - this.key = key; + public Cache(Object value,long loginMill,long timeOut) { this.value = value; + this.loginMill = loginMill; this.timeOut = timeOut; } - public Cache(String key, Object value) { - this.key = key; + public Cache(Object value) { this.value = value; } - public String getKey() { - return key; - } - - public long getTimeOut() { - return timeOut; - } - public Object getValue() { return value; } - public void setKey(String string) { - key = string; + public void setValue(Object value) { + this.value = value; } - public void setTimeOut(long l) { - timeOut = l; + public long getLoginMill() { + return loginMill; } - public void setValue(Object object) { - value = object; + public void setLoginMill(long loginMill) { + this.loginMill = loginMill; } - public boolean isExpired() { - return expired; + public long getTimeOut() { + return timeOut; } - public void setExpired(boolean b) { - expired = b; + public void setTimeOut(long timeOut) { + this.timeOut = timeOut; } } diff --git a/power-service/src/main/java/com/manage/service/cache/CacheManager.java b/power-service/src/main/java/com/manage/service/cache/CacheManager.java index 7c54bac..a1ccd33 100644 --- a/power-service/src/main/java/com/manage/service/cache/CacheManager.java +++ b/power-service/src/main/java/com/manage/service/cache/CacheManager.java @@ -2,10 +2,7 @@ package com.manage.service.cache; import com.manage.vo.Power_UserVo; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; +import java.util.*; public class CacheManager { private static HashMap cacheMap = new HashMap(); @@ -21,84 +18,90 @@ public class CacheManager { return (Cache) cacheMap.get(key); } - private static boolean hasCache(String key) { + private static boolean hasCache(String key) { return cacheMap.containsKey(key); } - public static void clearAll() { + public static void clearAll() { cacheMap.clear(); } - public static void clearAll(String type) { + public static void clearAll(String type) { Iterator i = cacheMap.entrySet().iterator(); String key; - ArrayList arr = new ArrayList(); try { while (i.hasNext()) { Map.Entry entry = (Map.Entry) i.next(); key = (String) entry.getKey(); - if (key.startsWith(type)) { - arr.add(key); + if (key.equals(type)) { + clearOnly(key); } } - for (String s : arr) { - clearOnly(s); - } } catch (Exception ex) { ex.printStackTrace(); } } - public static void clearOnly(String key) { + public static void clearOnly(String key) { cacheMap.remove(key); } - public static void putCache(String key, Cache obj) { + public static void putCache(String key, Cache obj) { cacheMap.put(key, obj); + //移除不属于该token的 + Power_UserVo powerUser = (Power_UserVo)obj.getValue(); + CacheManager.removeCacheByObject(powerUser,key); } public static Cache getCacheInfo(String key) { if (hasCache(key)) { Cache cache = getCache(key); if (cacheExpired(cache)) { - cache.setExpired(true); + //过期,移除 + clearOnly(key); + return null; } return cache; - }else + }else { return null; + } } + //是否过期 private static boolean cacheExpired(Cache cache) { if (null == cache) { return false; } long nowDt = System.currentTimeMillis(); + long loginMill = cache.getLoginMill(); long cacheDt = cache.getTimeOut(); - if (cacheDt <= 0||cacheDt>nowDt) { - return false; - } else { + try { + long checkTime = nowDt - loginMill; + if (checkTime >= cacheDt) { + return true; + } else { + return false; + } + }catch (Exception e){ + e.printStackTrace(); return true; } } //根据用户信息删除缓存 - public synchronized static void removeCacheByObject(Power_UserVo obj) { - ArrayList arr = new ArrayList(); + private static void removeCacheByObject(Power_UserVo obj,String token) { try { Iterator i = cacheMap.entrySet().iterator(); while (i.hasNext()) { - Map.Entry entry = (Map.Entry) i.next(); - Cache cache = CacheManager.getCacheInfo((String)entry.getKey()); + Map.Entry entry = (Map.Entry) i.next(); + Cache cache = CacheManager.getCacheInfo(entry.getKey()); Power_UserVo o = (Power_UserVo)cache.getValue(); - if (obj.getUserName().equals(o.getUserName())) { - arr.add((String)entry.getKey()); - } - } - if(!arr.isEmpty()){ - for (String s : arr) { - clearOnly(s); + if (obj.getUserName().equals(o.getUserName()) && !entry.getKey().equals(token)) { + clearOnly(entry.getKey()); } } - } catch (Exception ignored) {} + } catch (Exception e) { + e.printStackTrace(); + } } } \ No newline at end of file diff --git a/power-service/target/classes/com/manage/service/cache/Cache.class b/power-service/target/classes/com/manage/service/cache/Cache.class index c76a910..7204601 100644 Binary files a/power-service/target/classes/com/manage/service/cache/Cache.class and b/power-service/target/classes/com/manage/service/cache/Cache.class differ diff --git a/power-service/target/classes/com/manage/service/cache/CacheManager.class b/power-service/target/classes/com/manage/service/cache/CacheManager.class index 3b4e1c7..3e873fd 100644 Binary files a/power-service/target/classes/com/manage/service/cache/CacheManager.class and b/power-service/target/classes/com/manage/service/cache/CacheManager.class differ