src/main/java/com/moon/server/entity/all/RedisCacheKey.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/moon/server/interceptor/ProxyFilter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/moon/server/mapper/all/PermsMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/moon/server/service/all/PermsService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/moon/server/service/all/RedisService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/moon/server/service/sys/TokenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/all/PermsMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/moon/server/entity/all/RedisCacheKey.java
@@ -41,6 +41,13 @@ } /** * 资源列表授权键 */ public static String permsResListKey(String key) { return "perms:resList:" + key; } /** * 菜单授权键 */ public static String permsMenusKey(String key) { src/main/java/com/moon/server/interceptor/ProxyFilter.java
@@ -1,10 +1,12 @@ package com.moon.server.interceptor; import com.moon.server.entity.all.ResAuthEntity; import com.moon.server.entity.all.StaticData; import com.moon.server.entity.sys.TokenEntity; import com.moon.server.entity.sys.UserEntity; import com.moon.server.helper.StringHelper; import com.moon.server.helper.WebHelper; import com.moon.server.service.all.PermsService; import com.moon.server.service.all.SysService; import com.moon.server.service.sys.ResLogService; @@ -24,6 +26,9 @@ public class ProxyFilter implements Filter { @Resource private SysService sysService; @Resource private PermsService permsService; @Resource private ResLogService resLogService; @@ -150,8 +155,9 @@ return te.getIp().equals(ip); } private boolean checkPerms(int resId){ private boolean checkPerms(UserEntity ue, int resId){ String uid = StaticData.ADMIN.equals(ue.getUid()) ? null : ue.getUid(); List<ResAuthEntity> rs = permsService.selectRes(uid); return true; } src/main/java/com/moon/server/mapper/all/PermsMapper.java
@@ -25,6 +25,14 @@ public List<ResAuthEntity> selectRes(String uid); /** * 根据用户Uid查询资源列表 * * @param uid * @return */ public List<Integer> selectResList(String uid); /** * 根据用户Uid查询菜单授权 * * @param uid src/main/java/com/moon/server/service/all/PermsService.java
@@ -38,6 +38,22 @@ } @Override public List<Integer> selectResList(String uid) { String key = RedisCacheKey.permsResListKey(uid); Object obj = redisService.get(key); if (obj instanceof List<?>) { return (List<Integer>) obj; } List<Integer> list = permsMapper.selectResList(uid); if (list != null && list.size() > 0) { redisService.put(key, list, SettingData.CACHE_EXPIRE, TimeUnit.MINUTES); } return list; } @Override public List<MenusAuthEntity> selectMenus(String uid) { String key = RedisCacheKey.permsMenusKey(uid); Object obj = redisService.get(key); @@ -97,15 +113,14 @@ public void clearResCache() { redisService.clearKeys(RedisCacheKey.permsResKey("")); redisService.clearKeys(RedisCacheKey.permsResListKey("")); } public void clearPermsCache() { redisService.clearKeys(RedisCacheKey.permsMenusKey("")); redisService.clearKeys(RedisCacheKey.permsPermsKey("")); redisService.clearKeys(RedisCacheKey.permsPermsEntityKey("")); redisService.clearKeys(RedisCacheKey.permsRootKey()); } public void clearAllCache() { redisService.clearKeys(RedisCacheKey.permsRootKey()); redisService.clearAll(); } } src/main/java/com/moon/server/service/all/RedisService.java
@@ -73,7 +73,9 @@ * @param key 键 */ public void delete(String key) { redisTemplate.delete(key); if (hasKey(key)) { redisTemplate.delete(key); } } /** @@ -83,7 +85,9 @@ */ public void clearKeys(String subKeyString) { Set<String> keys = redisTemplate.keys(subKeyString + "*"); redisTemplate.delete(keys); if (null != keys && keys.size() > 0) { redisTemplate.delete(keys); } } /** @@ -91,6 +95,8 @@ */ public void clearAll() { Set<String> keys = redisTemplate.keys("*"); redisTemplate.delete(keys); if (null != keys && keys.size() > 0) { redisTemplate.delete(keys); } } } src/main/java/com/moon/server/service/sys/TokenService.java
@@ -158,13 +158,9 @@ // 清除缓存 String tokenKey = RedisCacheKey.signTokenKey(token); if (redisService.hasKey(tokenKey)) { redisService.delete(tokenKey); } redisService.delete(tokenKey); String userKey = RedisCacheKey.signUserKey(te.getToken()); if (redisService.hasKey(userKey)) { redisService.delete(userKey); } redisService.delete(userKey); // db,设置令牌过期 te.setUpdateUser(ue.getId()); src/main/resources/mapper/all/PermsMapper.xml
@@ -15,6 +15,20 @@ order by d.id </select> <select id="selectResList" resultType="java.lang.Integer"> select distinct d.id from lf.sys_user a inner join lf.sys_role_user b on a.id = b.userid inner join lf.sys_role_res c on b.roleid = c.roleid inner join lf.sys_res d on c.resid = d.id <where> <if test="uid != null"> a.uid = #{uid} </if> </where> order by d.id </select> <select id="selectMenus" resultType="com.moon.server.entity.all.MenusAuthEntity"> select distinct e.id,e.pid,e.cn_name,e.en_name,e.url,e.perms,e.type,e.css,e.icon,e.level,e.order_num,e.is_show from lf.sys_user a