diff --git a/pom.xml b/pom.xml index 0b73e85..ed2782f 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,12 @@ lombok + + + org.springframework.boot + spring-boot-starter-aop + + cn.hutool diff --git a/src/main/java/cn/yinlihupo/common/aspect/ProjectPermissionAspect.java b/src/main/java/cn/yinlihupo/common/aspect/ProjectPermissionAspect.java index ccc7297..75b4862 100644 --- a/src/main/java/cn/yinlihupo/common/aspect/ProjectPermissionAspect.java +++ b/src/main/java/cn/yinlihupo/common/aspect/ProjectPermissionAspect.java @@ -2,6 +2,7 @@ package cn.yinlihupo.common.aspect; import cn.yinlihupo.common.annotation.RequireProjectPermission; import cn.yinlihupo.common.annotation.RequireProjectRole; +import cn.yinlihupo.common.enums.ErrorCode; import cn.yinlihupo.common.exception.BusinessException; import cn.yinlihupo.common.util.SecurityUtils; import cn.yinlihupo.service.system.ProjectPermissionService; @@ -41,7 +42,7 @@ public class ProjectPermissionAspect { Long userId = SecurityUtils.getCurrentUserId(); if (userId == null) { - throw new BusinessException(403, "用户未登录"); + throw new BusinessException(ErrorCode.NOT_LOGIN_ERROR, "用户未登录"); } // 管理员直接放行 @@ -52,7 +53,7 @@ public class ProjectPermissionAspect { // 获取项目ID Long projectId = extractProjectId(joinPoint, annotation.projectIdParam()); if (projectId == null) { - throw new BusinessException(400, "无法获取项目ID"); + throw new BusinessException(ErrorCode.PARAMS_ERROR, "无法获取项目ID"); } // 校验权限 @@ -61,7 +62,7 @@ public class ProjectPermissionAspect { if (!hasPermission) { log.warn("用户 [{}] 没有项目 [{}] 的权限 [{}]", userId, projectId, requiredPermission); - throw new BusinessException(403, annotation.message()); + throw new BusinessException(ErrorCode.FORBIDDEN_ERROR, annotation.message()); } } @@ -76,7 +77,7 @@ public class ProjectPermissionAspect { Long userId = SecurityUtils.getCurrentUserId(); if (userId == null) { - throw new BusinessException(403, "用户未登录"); + throw new BusinessException(ErrorCode.NOT_LOGIN_ERROR, "用户未登录"); } // 管理员直接放行(如果允许) @@ -87,13 +88,13 @@ public class ProjectPermissionAspect { // 获取项目ID Long projectId = extractProjectId(joinPoint, annotation.projectIdParam()); if (projectId == null) { - throw new BusinessException(400, "无法获取项目ID"); + throw new BusinessException(ErrorCode.PARAMS_ERROR, "无法获取项目ID"); } // 获取用户项目角色 String userRole = projectPermissionService.getUserProjectRole(userId, projectId); if (userRole == null) { - throw new BusinessException(403, "您不是该项目的成员"); + throw new BusinessException(ErrorCode.FORBIDDEN_ERROR, "您不是该项目的成员"); } // 校验角色 @@ -109,7 +110,7 @@ public class ProjectPermissionAspect { if (!hasRole) { log.warn("用户 [{}] 在项目 [{}] 中的角色 [{}] 不符合要求 {}", userId, projectId, userRole, requiredRoles); - throw new BusinessException(403, annotation.message()); + throw new BusinessException(ErrorCode.FORBIDDEN_ERROR, annotation.message()); } } diff --git a/src/main/resources/application-dev.yaml b/src/main/resources/application-dev.yaml index 3b5e3bf..228ab06 100644 --- a/src/main/resources/application-dev.yaml +++ b/src/main/resources/application-dev.yaml @@ -16,20 +16,6 @@ spring: idle-timeout: 300000 connection-timeout: 20000 - # MyBatis Plus 配置 - mybatis-plus: - mapper-locations: classpath*:/mapper/**/*.xml - type-aliases-package: cn.yinlihupo.domain.entity - configuration: - map-underscore-to-camel-case: true - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - global-config: - db-config: - id-type: auto - logic-delete-field: deleted - logic-delete-value: 1 - logic-not-delete-value: 0 - ai: openai: api-key: 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 @@ -45,9 +31,23 @@ minio: secret-key: minioadmin bucket-name: ylhp-files +# MyBatis Plus 配置 +mybatis-plus: + mapper-locations: classpath*:/mapper/**/*.xml + type-aliases-package: cn.yinlihupo.domain.entity + configuration: + map-underscore-to-camel-case: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + global-config: + db-config: + id-type: auto + logic-delete-field: deleted + logic-delete-value: 1 + logic-not-delete-value: 0 + # 日志配置 logging: level: root: INFO - cn.yinlihupo.ylhpaiprojectmanager: DEBUG + cn.yinlihupo: DEBUG org.springframework.web: DEBUG diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index dce7a6d..035a133 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -10,7 +10,7 @@ spring: # 公共配置 server: - port: 8080 + port: 8088 # Sa-Token 配置 sa-token: @@ -19,7 +19,7 @@ sa-token: # Token 有效期(单位:秒)默认30天,-1代表永不过期 timeout: 2592000 # Token 临时有效期(指定时间内无操作就视为token过期)单位:秒 - activity-timeout: -1 + active-timeout: -1 # 是否允许同一账号并发登录(为true时允许一起登录,为false时新登录挤掉旧登录) is-concurrent: true # 在多人登录同一账号时,是否共用一个token(为true时所有登录共用一个token,为false时每次登录新建一个token)