From fb4623da8f79bc71b81f051210808ae9d01c9b80 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sat, 26 Apr 2025 10:25:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0web=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/CustomAuthorizationManagerServiceImpl.java | 11 +++++++---- .../configuration/ConfigurationController.java | 4 ++-- .../configuration/EmailTemplateController.java | 6 +++--- .../services/controller/system/PowerController.java | 2 +- .../cn/bunny/domain/system/dto/power/PowerAddDto.java | 3 +++ .../cn/bunny/domain/system/dto/power/PowerDto.java | 3 +++ .../bunny/domain/system/dto/power/PowerUpdateDto.java | 3 +++ .../cn/bunny/domain/system/entity/Permission.java | 3 +++ .../main/java/cn/bunny/domain/system/vo/PowerVo.java | 3 +++ .../{PowerMapper.java => PermissionMapper.java} | 2 +- .../system/{PowerMapper.xml => PermissionMapper.xml} | 8 ++++++-- .../service/system/impl/PowerServiceImpl.java | 4 ++-- .../java/cn/bunny/services/utils/system/UserUtil.java | 6 +++--- 13 files changed, 40 insertions(+), 18 deletions(-) rename auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/{PowerMapper.java => PermissionMapper.java} (94%) rename auth-system/mappers/src/main/resources/mapper/system/{PowerMapper.xml => PermissionMapper.xml} (87%) diff --git a/auth-admin/src/main/java/cn/bunny/services/security/custom/CustomAuthorizationManagerServiceImpl.java b/auth-admin/src/main/java/cn/bunny/services/security/custom/CustomAuthorizationManagerServiceImpl.java index 00af9ea..4c2d782 100644 --- a/auth-admin/src/main/java/cn/bunny/services/security/custom/CustomAuthorizationManagerServiceImpl.java +++ b/auth-admin/src/main/java/cn/bunny/services/security/custom/CustomAuthorizationManagerServiceImpl.java @@ -6,7 +6,7 @@ import cn.bunny.domain.system.entity.Role; import cn.bunny.domain.vo.LoginVo; import cn.bunny.domain.vo.result.ResultCodeEnum; import cn.bunny.services.context.BaseContext; -import cn.bunny.services.mapper.system.PowerMapper; +import cn.bunny.services.mapper.system.PermissionMapper; import cn.bunny.services.mapper.system.RoleMapper; import cn.bunny.services.utils.JwtHelper; import cn.bunny.services.utils.system.RoleUtil; @@ -36,7 +36,7 @@ import java.util.function.Supplier; public class CustomAuthorizationManagerServiceImpl implements AuthorizationManager { @Resource - private PowerMapper powerMapper; + private PermissionMapper permissionMapper; @Resource private RoleMapper roleMapper; @@ -100,6 +100,7 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag * @param request 请求url地址 */ private Boolean hasAuth(HttpServletRequest request) { + String requestMethod = request.getMethod(); // 根据用户ID查询角色数据 Long userId = BaseContext.getUserId(); List roleList = roleMapper.selectListByUserId(userId); @@ -116,10 +117,12 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag if (requestURI.contains("noManage")) return true; // 根据角色列表查询权限信息 - List permissionList = powerMapper.selectListByUserId(userId); + List permissionList = permissionMapper.selectListByUserId(userId); // 判断是否与请求路径匹配 - return permissionList.stream().map(Permission::getRequestUrl) + return permissionList.stream() + .filter(permission -> permission.getRequestMethod().equals(requestMethod)) + .map(Permission::getRequestUrl) .filter(Objects::nonNull) .anyMatch(requestUrl -> { if ((requestUrl.contains("/*") || requestUrl.contains("/**"))) { diff --git a/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/ConfigurationController.java b/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/ConfigurationController.java index a8cf1bd..413769c 100644 --- a/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/ConfigurationController.java +++ b/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/ConfigurationController.java @@ -26,14 +26,14 @@ public class ConfigurationController { } @Operation(summary = "获取修改web配置文件", description = "获取修改web配置文件") - @GetMapping("getWebConfig") + @GetMapping() public Result getWebConfig() { WebConfiguration webConfiguration = configurationService.webConfig(); return Result.success(webConfiguration); } @Operation(summary = "更新web配置文件", description = "更新web配置文件") - @PutMapping("updateWebConfiguration") + @PutMapping() public Result updateWebConfiguration(@Valid @RequestBody WebConfigurationDto dto) { configurationService.updateWebConfiguration(dto); return Result.success(ResultCodeEnum.UPDATE_SUCCESS); diff --git a/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/EmailTemplateController.java b/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/EmailTemplateController.java index 686a343..a26dab8 100644 --- a/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/EmailTemplateController.java +++ b/auth-system/controllers/src/main/java/cn/bunny/services/controller/configuration/EmailTemplateController.java @@ -37,7 +37,7 @@ public class EmailTemplateController { private EmailTemplateService emailTemplateService; @Operation(summary = "分页查询邮件模板", description = "分页查询邮件模板") - @GetMapping("getEmailTemplateList/{page}/{limit}") + @GetMapping("query/page/{page}/{limit}") public Result> getEmailTemplateList( @Parameter(name = "page", description = "当前页", required = true) @PathVariable("page") Integer page, @@ -50,14 +50,14 @@ public class EmailTemplateController { } @Operation(summary = "获取邮件模板类型字段", description = "获取邮件模板类型字段") - @GetMapping("getEmailTypes") + @GetMapping("query/emailTypes") public Result>> getEmailTypes() { List> list = emailTemplateService.getEmailTypes(); return Result.success(list); } @Operation(summary = "添加邮件模板", description = "添加邮件模板") - @PostMapping("addEmailTemplate") + @PostMapping("add/emailTemplate") public Result addEmailTemplate(@Valid @RequestBody EmailTemplateAddDto dto) { emailTemplateService.addEmailTemplate(dto); return Result.success(ResultCodeEnum.ADD_SUCCESS); diff --git a/auth-system/controllers/src/main/java/cn/bunny/services/controller/system/PowerController.java b/auth-system/controllers/src/main/java/cn/bunny/services/controller/system/PowerController.java index 57b33d0..6f5e7f8 100644 --- a/auth-system/controllers/src/main/java/cn/bunny/services/controller/system/PowerController.java +++ b/auth-system/controllers/src/main/java/cn/bunny/services/controller/system/PowerController.java @@ -65,7 +65,7 @@ public class PowerController { @Operation(summary = "更新权限", description = "更新权限") @PutMapping("updatePower") - public Result updatePower(@Valid @RequestBody PowerUpdateDto dto) { + public Result updatePower(@Valid @RequestBody PowerUpdateDto dto) { powerService.updatePower(dto); return Result.success(ResultCodeEnum.UPDATE_SUCCESS); } diff --git a/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerAddDto.java b/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerAddDto.java index cf05e49..ce107a9 100644 --- a/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerAddDto.java +++ b/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerAddDto.java @@ -34,5 +34,8 @@ public class PowerAddDto { @Schema(name = "requestUrl", title = "请求路径") private String requestUrl; + @Schema(name = "requestMethod", title = "请求方法") + private String requestMethod; + } diff --git a/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerDto.java b/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerDto.java index c73bcf8..e9bf567 100644 --- a/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerDto.java +++ b/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerDto.java @@ -22,5 +22,8 @@ public class PowerDto { @Schema(name = "requestUrl", title = "请求路径") private String requestUrl; + @Schema(name = "requestMethod", title = "请求方法") + private String requestMethod; + } diff --git a/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerUpdateDto.java b/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerUpdateDto.java index 79b60ce..47bce38 100644 --- a/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerUpdateDto.java +++ b/auth-system/domain/src/main/java/cn/bunny/domain/system/dto/power/PowerUpdateDto.java @@ -34,5 +34,8 @@ public class PowerUpdateDto { @Schema(name = "requestUrl", title = "请求路径") private String requestUrl; + + @Schema(name = "requestMethod", title = "请求方法") + private String requestMethod; } diff --git a/auth-system/domain/src/main/java/cn/bunny/domain/system/entity/Permission.java b/auth-system/domain/src/main/java/cn/bunny/domain/system/entity/Permission.java index c8c1261..5112729 100644 --- a/auth-system/domain/src/main/java/cn/bunny/domain/system/entity/Permission.java +++ b/auth-system/domain/src/main/java/cn/bunny/domain/system/entity/Permission.java @@ -24,5 +24,8 @@ public class Permission extends BaseEntity { @Schema(name = "requestUrl", title = "请求路径") private String requestUrl; + @Schema(name = "requestMethod", title = "请求方法") + private String requestMethod; + } diff --git a/auth-system/domain/src/main/java/cn/bunny/domain/system/vo/PowerVo.java b/auth-system/domain/src/main/java/cn/bunny/domain/system/vo/PowerVo.java index 0509794..fe3a992 100644 --- a/auth-system/domain/src/main/java/cn/bunny/domain/system/vo/PowerVo.java +++ b/auth-system/domain/src/main/java/cn/bunny/domain/system/vo/PowerVo.java @@ -31,6 +31,9 @@ public class PowerVo extends BaseUserVo { @Schema(name = "requestUrl", title = "请求路径") private String requestUrl; + @Schema(name = "requestMethod", title = "请求路径") + private String requestMethod; + @Schema(name = "children", title = "子级") private List children; diff --git a/auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/PowerMapper.java b/auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/PermissionMapper.java similarity index 94% rename from auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/PowerMapper.java rename to auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/PermissionMapper.java index e732dea..d2791aa 100644 --- a/auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/PowerMapper.java +++ b/auth-system/mappers/src/main/java/cn/bunny/services/mapper/system/PermissionMapper.java @@ -20,7 +20,7 @@ import java.util.List; * @since 2024-10-03 16:00:52 */ @Mapper -public interface PowerMapper extends BaseMapper { +public interface PermissionMapper extends BaseMapper { /** * * 分页查询权限内容 diff --git a/auth-system/mappers/src/main/resources/mapper/system/PowerMapper.xml b/auth-system/mappers/src/main/resources/mapper/system/PermissionMapper.xml similarity index 87% rename from auth-system/mappers/src/main/resources/mapper/system/PowerMapper.xml rename to auth-system/mappers/src/main/resources/mapper/system/PermissionMapper.xml index e05a87a..2206f8c 100644 --- a/auth-system/mappers/src/main/resources/mapper/system/PowerMapper.xml +++ b/auth-system/mappers/src/main/resources/mapper/system/PermissionMapper.xml @@ -1,6 +1,6 @@ - + @@ -14,6 +14,7 @@ + @@ -40,7 +41,10 @@ and permission.power_name like CONCAT('%',#{dto.powerName},'%') - and permission.request_url like CONCAT('%',#{dto.requestUrl},'%') + and permission.requestMethod like CONCAT('%',#{dto.requestMethod},'%') + + + and permission.request_method like CONCAT('%',#{dto.requestMethod},'%') diff --git a/auth-system/services/src/main/java/cn/bunny/services/service/system/impl/PowerServiceImpl.java b/auth-system/services/src/main/java/cn/bunny/services/service/system/impl/PowerServiceImpl.java index 931c178..29a6a8f 100644 --- a/auth-system/services/src/main/java/cn/bunny/services/service/system/impl/PowerServiceImpl.java +++ b/auth-system/services/src/main/java/cn/bunny/services/service/system/impl/PowerServiceImpl.java @@ -9,7 +9,7 @@ import cn.bunny.domain.system.vo.PowerVo; import cn.bunny.domain.vo.result.PageResult; import cn.bunny.domain.vo.result.ResultCodeEnum; import cn.bunny.services.exception.AuthCustomerException; -import cn.bunny.services.mapper.system.PowerMapper; +import cn.bunny.services.mapper.system.PermissionMapper; import cn.bunny.services.mapper.system.RolePermissionMapper; import cn.bunny.services.service.system.PowerService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -37,7 +37,7 @@ import java.util.List; */ @Service @Transactional -public class PowerServiceImpl extends ServiceImpl implements PowerService { +public class PowerServiceImpl extends ServiceImpl implements PowerService { @Resource private RolePermissionMapper rolePermissionMapper; diff --git a/auth-system/services/src/main/java/cn/bunny/services/utils/system/UserUtil.java b/auth-system/services/src/main/java/cn/bunny/services/utils/system/UserUtil.java index a49c8c0..fe9b4e7 100644 --- a/auth-system/services/src/main/java/cn/bunny/services/utils/system/UserUtil.java +++ b/auth-system/services/src/main/java/cn/bunny/services/utils/system/UserUtil.java @@ -10,7 +10,7 @@ import cn.bunny.domain.system.entity.Role; import cn.bunny.domain.vo.LoginVo; import cn.bunny.services.exception.AuthCustomerException; import cn.bunny.services.mapper.log.UserLoginLogMapper; -import cn.bunny.services.mapper.system.PowerMapper; +import cn.bunny.services.mapper.system.PermissionMapper; import cn.bunny.services.mapper.system.RoleMapper; import cn.bunny.services.mapper.system.UserMapper; import cn.bunny.services.utils.JwtHelper; @@ -38,7 +38,7 @@ import java.util.regex.Pattern; @Component public class UserUtil { private final MinioUtil minioUtil; - private final PowerMapper powerMapper; + private final PermissionMapper permissionMapper; private final RoleMapper roleMapper; private final UserMapper userMapper; private final UserLoginLogMapper userLoginLogMapper; @@ -123,7 +123,7 @@ public class UserUtil { // 判断是否是 admin 如果是admin 赋予所有权限 boolean isAdmin = RoleUtil.checkAdmin(roles, permissions, user); if (!isAdmin) { - permissions = powerMapper.selectListByUserId(userId).stream().map(Permission::getPowerCode).toList(); + permissions = permissionMapper.selectListByUserId(userId).stream().map(Permission::getPowerCode).toList(); } // 计算过期时间,并格式化返回