From 8e3800a572e9006df275741c4acbedcb2c35caae Mon Sep 17 00:00:00 2001 From: haoxr <1490493387@qq.com> Date: Wed, 22 Feb 2023 11:01:56 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9D=83=E9=99=90=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../security/service/PermissionService.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/youlai/system/security/service/PermissionService.java b/src/main/java/com/youlai/system/security/service/PermissionService.java index 1e35fc55..dab2aff9 100644 --- a/src/main/java/com/youlai/system/security/service/PermissionService.java +++ b/src/main/java/com/youlai/system/security/service/PermissionService.java @@ -10,31 +10,43 @@ import org.springframework.util.PatternMatchUtils; import java.util.Set; +/** + * 权限校验 + * + * @author haoxr + * @date 2022/2/22 + */ @Service("pms") @RequiredArgsConstructor public class PermissionService { private final RedisTemplate redisTemplate; + /** + * 判断当前登录用户是否拥有操作权限 + * + * @param perm 权限标识(eg: sys:user:add) + * @return + */ public boolean hasPermission(String perm) { if (StrUtil.isBlank(perm)) { return false; } - + // 超级管理员放行 if (SecurityUtils.isRoot()) { return true; } Long userId = SecurityUtils.getUserId(); - Set perms = (Set) redisTemplate.opsForValue().get("USER_PERMS:" + userId); + Set perms = (Set) redisTemplate.opsForValue().get("USER_PERMS:" + userId); // 权限数据用户登录成功节点存入redis,详见 JwtTokenManager#createToken() if (CollectionUtil.isEmpty(perms)) { return false; } boolean hasPermission = perms.stream() - .anyMatch(item -> PatternMatchUtils.simpleMatch(perm, item)); + .anyMatch(item -> PatternMatchUtils.simpleMatch(perm, item)); // *号匹配任意字符 return hasPermission; }