From 2a1e2ebb3ce800fc6aa8067db0cc3b0ab9253604 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期五, 24 五月 2024 10:32:36 +0800
Subject: [PATCH] feat: 代码提交

---
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java |  261 ++++++++++++++++++++++-----------------------------
 1 files changed, 114 insertions(+), 147 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
index 403347e..542b9ef 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
@@ -1,11 +1,5 @@
 package com.ruoyi.common.security.auth;
 
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import com.ruoyi.system.api.model.LoginUserParent;
-import org.springframework.util.PatternMatchUtils;
 import com.ruoyi.common.core.context.SecurityContextHolder;
 import com.ruoyi.common.core.exception.auth.NotLoginException;
 import com.ruoyi.common.core.exception.auth.NotPermissionException;
@@ -19,18 +13,27 @@
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.LoginUserParent;
+import org.springframework.util.PatternMatchUtils;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
 
 /**
  * Token 权限验证,逻辑实现类
- * 
+ *
  * @author ruoyi
  */
-public class AuthLogic
-{
-    /** 所有权限标识 */
+public class AuthLogic {
+    /**
+     * 所有权限标识
+     */
     private static final String ALL_PERMISSION = "*:*:*";
 
-    /** 管理员角色权限标识 */
+    /**
+     * 管理员角色权限标识
+     */
     private static final String SUPER_ADMIN = "admin";
 
     public TokenService tokenService = SpringUtils.getBean(TokenService.class);
@@ -38,11 +41,9 @@
     /**
      * 会话注销
      */
-    public void logout()
-    {
+    public void logout() {
         String token = SecurityUtils.getToken();
-        if (token == null)
-        {
+        if (token == null) {
             return;
         }
         logoutByToken(token);
@@ -51,41 +52,36 @@
     /**
      * 会话注销,根据指定Token
      */
-    public void logoutByToken(String token)
-    {
+    public void logoutByToken(String token) {
         tokenService.delLoginUser(token);
     }
+
     /**
      * 家长端会话注销,根据指定Token
      */
-    public void logoutByToken1(String token)
-    {
+    public void logoutByToken1(String token) {
         tokenService.delLoginUser1(token);
     }
 
     /**
      * 检验用户是否已经登录,如未登录,则抛出异常
      */
-    public void checkLogin()
-    {
+    public void checkLogin() {
         getLoginUser();
     }
 
     /**
      * 获取当前用户缓存信息, 如果未登录,则抛出异常
-     * 
+     *
      * @return 用户缓存信息
      */
-    public LoginUser getLoginUser()
-    {
+    public LoginUser getLoginUser() {
         String token = SecurityUtils.getToken();
-        if (token == null)
-        {
+        if (token == null) {
             throw new NotLoginException("未提供token");
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        if (loginUser == null)
-        {
+        if (loginUser == null) {
             throw new NotLoginException("无效的token");
         }
         return loginUser;
@@ -93,83 +89,94 @@
 
     /**
      * 获取当前用户缓存信息, 如果未登录,则抛出异常
-     * 
+     *
      * @param token 前端传递的认证信息
      * @return 用户缓存信息
      */
-    public LoginUser getLoginUser(String token)
-    {
+    public LoginUser getLoginUser(String token) {
         return tokenService.getLoginUser(token);
     }
+
     /**
      * 获取当前用户缓存信息, 如果未登录,则抛出异常
      *
      * @param token 前端传递的认证信息
      * @return 用户缓存信息
      */
-    public LoginUserParent getLoginUser1(String token)
-    {
+    public LoginUserParent getLoginUser1(String token) {
         return tokenService.getLoginUser1(token);
     }
 
     /**
-     * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存
-     * 
-     * @param loginUser 当前用户信息
+     * 获取当前用户缓存信息, 如果未登录,则抛出异常
+     * 学习端
+     *
+     * @param token 前端传递的认证信息
+     * @return 用户缓存信息
      */
-    public void verifyLoginUserExpire(LoginUser loginUser)
-    {
-        tokenService.verifyToken(loginUser);
+    public LoginUserParent getLoginUserStudy(String token) {
+        return tokenService.getLoginUserStudy(token);
     }
+
     /**
      * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存
      *
      * @param loginUser 当前用户信息
      */
-    public void verifyLoginUserExpire1(LoginUserParent loginUser)
-    {
+    public void verifyLoginUserExpire(LoginUser loginUser) {
+        tokenService.verifyToken(loginUser);
+    }
+
+    /**
+     * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存
+     *
+     * @param loginUser 当前用户信息
+     */
+    public void verifyLoginUserExpire1(LoginUserParent loginUser) {
         tokenService.verifyToken1(loginUser);
     }
 
     /**
+     * 验证当前用户有效期, 如果相差不足120分钟,自动刷新缓存
+     *
+     * @param loginUser 当前用户信息
+     */
+    public void verifyLoginUserStudyExpire(LoginUserParent loginUser) {
+        tokenService.verifyTokenStudy(loginUser);
+    }
+
+    /**
      * 验证用户是否具备某权限
-     * 
+     *
      * @param permission 权限字符串
      * @return 用户是否具备某权限
      */
-    public boolean hasPermi(String permission)
-    {
+    public boolean hasPermi(String permission) {
         return hasPermi(getPermiList(), permission);
     }
 
     /**
      * 验证用户是否具备某权限, 如果验证未通过,则抛出异常: NotPermissionException
-     * 
+     *
      * @param permission 权限字符串
      * @return 用户是否具备某权限
      */
-    public void checkPermi(String permission)
-    {
-        if (!hasPermi(getPermiList(), permission))
-        {
+    public void checkPermi(String permission) {
+        if (!hasPermi(getPermiList(), permission)) {
             throw new NotPermissionException(permission);
         }
     }
 
     /**
      * 根据注解(@RequiresPermissions)鉴权, 如果验证未通过,则抛出异常: NotPermissionException
-     * 
+     *
      * @param requiresPermissions 注解对象
      */
-    public void checkPermi(RequiresPermissions requiresPermissions)
-    {
+    public void checkPermi(RequiresPermissions requiresPermissions) {
         SecurityContextHolder.setPermission(StringUtils.join(requiresPermissions.value(), ","));
-        if (requiresPermissions.logical() == Logical.AND)
-        {
+        if (requiresPermissions.logical() == Logical.AND) {
             checkPermiAnd(requiresPermissions.value());
-        }
-        else
-        {
+        } else {
             checkPermiOr(requiresPermissions.value());
         }
     }
@@ -179,13 +186,10 @@
      *
      * @param permissions 权限列表
      */
-    public void checkPermiAnd(String... permissions)
-    {
+    public void checkPermiAnd(String... permissions) {
         Set<String> permissionList = getPermiList();
-        for (String permission : permissions)
-        {
-            if (!hasPermi(permissionList, permission))
-            {
+        for (String permission : permissions) {
+            if (!hasPermi(permissionList, permission)) {
                 throw new NotPermissionException(permission);
             }
         }
@@ -193,78 +197,64 @@
 
     /**
      * 验证用户是否含有指定权限,只需包含其中一个
-     * 
+     *
      * @param permissions 权限码数组
      */
-    public void checkPermiOr(String... permissions)
-    {
+    public void checkPermiOr(String... permissions) {
         Set<String> permissionList = getPermiList();
-        for (String permission : permissions)
-        {
-            if (hasPermi(permissionList, permission))
-            {
+        for (String permission : permissions) {
+            if (hasPermi(permissionList, permission)) {
                 return;
             }
         }
-        if (permissions.length > 0)
-        {
+        if (permissions.length > 0) {
             throw new NotPermissionException(permissions);
         }
     }
 
     /**
      * 判断用户是否拥有某个角色
-     * 
+     *
      * @param role 角色标识
      * @return 用户是否具备某角色
      */
-    public boolean hasRole(String role)
-    {
+    public boolean hasRole(String role) {
         return hasRole(getRoleList(), role);
     }
 
     /**
      * 判断用户是否拥有某个角色, 如果验证未通过,则抛出异常: NotRoleException
-     * 
+     *
      * @param role 角色标识
      */
-    public void checkRole(String role)
-    {
-        if (!hasRole(role))
-        {
+    public void checkRole(String role) {
+        if (!hasRole(role)) {
             throw new NotRoleException(role);
         }
     }
 
     /**
      * 根据注解(@RequiresRoles)鉴权
-     * 
+     *
      * @param requiresRoles 注解对象
      */
-    public void checkRole(RequiresRoles requiresRoles)
-    {
-        if (requiresRoles.logical() == Logical.AND)
-        {
+    public void checkRole(RequiresRoles requiresRoles) {
+        if (requiresRoles.logical() == Logical.AND) {
             checkRoleAnd(requiresRoles.value());
-        }
-        else
-        {
+        } else {
             checkRoleOr(requiresRoles.value());
         }
     }
 
     /**
      * 验证用户是否含有指定角色,必须全部拥有
-     * 
+     *
      * @param roles 角色标识数组
      */
-    public void checkRoleAnd(String... roles)
-    {
+    public void checkRoleAnd(String... roles) {
         Set<String> roleList = getRoleList();
-        for (String role : roles)
-        {
-            if (!hasRole(roleList, role))
-            {
+        for (String role : roles) {
+            if (!hasRole(roleList, role)) {
                 throw new NotRoleException(role);
             }
         }
@@ -272,129 +262,106 @@
 
     /**
      * 验证用户是否含有指定角色,只需包含其中一个
-     * 
+     *
      * @param roles 角色标识数组
      */
-    public void checkRoleOr(String... roles)
-    {
+    public void checkRoleOr(String... roles) {
         Set<String> roleList = getRoleList();
-        for (String role : roles)
-        {
-            if (hasRole(roleList, role))
-            {
+        for (String role : roles) {
+            if (hasRole(roleList, role)) {
                 return;
             }
         }
-        if (roles.length > 0)
-        {
+        if (roles.length > 0) {
             throw new NotRoleException(roles);
         }
     }
 
     /**
      * 根据注解(@RequiresLogin)鉴权
-     * 
+     *
      * @param at 注解对象
      */
-    public void checkByAnnotation(RequiresLogin at)
-    {
+    public void checkByAnnotation(RequiresLogin at) {
         this.checkLogin();
     }
 
     /**
      * 根据注解(@RequiresRoles)鉴权
-     * 
+     *
      * @param at 注解对象
      */
-    public void checkByAnnotation(RequiresRoles at)
-    {
+    public void checkByAnnotation(RequiresRoles at) {
         String[] roleArray = at.value();
-        if (at.logical() == Logical.AND)
-        {
+        if (at.logical() == Logical.AND) {
             this.checkRoleAnd(roleArray);
-        }
-        else
-        {
+        } else {
             this.checkRoleOr(roleArray);
         }
     }
 
     /**
      * 根据注解(@RequiresPermissions)鉴权
-     * 
+     *
      * @param at 注解对象
      */
-    public void checkByAnnotation(RequiresPermissions at)
-    {
+    public void checkByAnnotation(RequiresPermissions at) {
         String[] permissionArray = at.value();
-        if (at.logical() == Logical.AND)
-        {
+        if (at.logical() == Logical.AND) {
             this.checkPermiAnd(permissionArray);
-        }
-        else
-        {
+        } else {
             this.checkPermiOr(permissionArray);
         }
     }
 
     /**
      * 获取当前账号的角色列表
-     * 
+     *
      * @return 角色列表
      */
-    public Set<String> getRoleList()
-    {
-        try
-        {
+    public Set<String> getRoleList() {
+        try {
             LoginUser loginUser = getLoginUser();
             return loginUser.getRoles();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return new HashSet<>();
         }
     }
 
     /**
      * 获取当前账号的权限列表
-     * 
+     *
      * @return 权限列表
      */
-    public Set<String> getPermiList()
-    {
-        try
-        {
+    public Set<String> getPermiList() {
+        try {
             LoginUser loginUser = getLoginUser();
             return loginUser.getPermissions();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             return new HashSet<>();
         }
     }
 
     /**
      * 判断是否包含权限
-     * 
+     *
      * @param authorities 权限列表
-     * @param permission 权限字符串
+     * @param permission  权限字符串
      * @return 用户是否具备某权限
      */
-    public boolean hasPermi(Collection<String> authorities, String permission)
-    {
+    public boolean hasPermi(Collection<String> authorities, String permission) {
         return authorities.stream().filter(StringUtils::hasText)
                 .anyMatch(x -> ALL_PERMISSION.contains(x) || PatternMatchUtils.simpleMatch(x, permission));
     }
 
     /**
      * 判断是否包含角色
-     * 
+     *
      * @param roles 角色列表
-     * @param role 角色
+     * @param role  角色
      * @return 用户是否具备某角色权限
      */
-    public boolean hasRole(Collection<String> roles, String role)
-    {
+    public boolean hasRole(Collection<String> roles, String role) {
         return roles.stream().filter(StringUtils::hasText)
                 .anyMatch(x -> SUPER_ADMIN.contains(x) || PatternMatchUtils.simpleMatch(x, role));
     }

--
Gitblit v1.7.1