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; }