From c67a2c83233a7371fe500b4bdb4c127f5d4573f0 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Mon, 24 Mar 2025 20:38:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menu/controller/ButtonController.java | 23 --- .../menu/controller/MenuController.java | 132 ------------------ .../gather/system/menu/pojo/ButtonVO.java | 21 --- .../user/pojo/enums/UserResponseEnum.java | 3 +- .../user/user/controller/AuthController.java | 29 +++- .../user/user/filter/AuthGlobalFilter.java | 2 +- .../user/user/pojo/param/SysUserParam.java | 1 - .../gather/user/user/pojo/po}/MenuVO.java | 2 +- .../gather/user/user/pojo/po}/MetaVO.java | 2 +- .../user/user/service/ISysUserService.java | 9 +- .../service/impl/SysFunctionServiceImpl.java | 12 +- .../user/service/impl/SysRoleServiceImpl.java | 14 -- .../user/service/impl/SysUserServiceImpl.java | 16 +-- 13 files changed, 41 insertions(+), 225 deletions(-) delete mode 100644 system/src/main/java/com/njcn/gather/system/menu/controller/ButtonController.java delete mode 100644 system/src/main/java/com/njcn/gather/system/menu/controller/MenuController.java delete mode 100644 system/src/main/java/com/njcn/gather/system/menu/pojo/ButtonVO.java rename {system/src/main/java/com/njcn/gather/system/menu/pojo => user/src/main/java/com/njcn/gather/user/user/pojo/po}/MenuVO.java (93%) rename {system/src/main/java/com/njcn/gather/system/menu/pojo => user/src/main/java/com/njcn/gather/user/user/pojo/po}/MetaVO.java (95%) diff --git a/system/src/main/java/com/njcn/gather/system/menu/controller/ButtonController.java b/system/src/main/java/com/njcn/gather/system/menu/controller/ButtonController.java deleted file mode 100644 index a90816ae..00000000 --- a/system/src/main/java/com/njcn/gather/system/menu/controller/ButtonController.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.njcn.gather.system.menu.controller; - -import com.njcn.common.pojo.response.HttpResult; -import com.njcn.gather.system.menu.pojo.ButtonVO; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -@Slf4j -@RestController -@RequestMapping("admin") -public class ButtonController { - - @RequestMapping("/auth/buttons") - public HttpResult buttons() { - ButtonVO buttonVO = new ButtonVO(); - HttpResult result = new HttpResult<>(); - result.setMessage("成功"); - result.setCode("A0000"); - result.setData(buttonVO); - return result; - } -} diff --git a/system/src/main/java/com/njcn/gather/system/menu/controller/MenuController.java b/system/src/main/java/com/njcn/gather/system/menu/controller/MenuController.java deleted file mode 100644 index 1b8404a1..00000000 --- a/system/src/main/java/com/njcn/gather/system/menu/controller/MenuController.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.njcn.gather.system.menu.controller; - -import cn.hutool.core.collection.CollectionUtil; -import com.njcn.common.pojo.response.HttpResult; -import com.njcn.gather.system.menu.pojo.MenuVO; -import com.njcn.gather.system.menu.pojo.MetaVO; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.ArrayList; -import java.util.List; - -@Slf4j -@RestController -@RequestMapping("admin") -public class MenuController { - -// @RequestMapping("/menu/list") -// public HttpResult> menuList() { -// -// List menuVOList = new ArrayList<>(); -// -// MenuVO menuVO = new MenuVO(); -// menuVO.setPath("/home/index"); -// menuVO.setName("home"); -// menuVO.setComponent("/home/index"); -// -// MetaVO metaVO = new MetaVO(); -// metaVO.setIcon("HomeFilled"); -// metaVO.setTitle("检测计划"); -// metaVO.setIsLink(""); -// metaVO.setHide(false); -// metaVO.setFull(false); -// metaVO.setAffix(true); -// metaVO.setKeepAlive(true); -// -// menuVO.setMeta(metaVO); -// menuVOList.add(menuVO); -// -// MenuVO menuVO1 = getMenuVORedirect("/machine","machine","/machine/testScript","Operation","台账管理"); -// MenuVO menuVO11 = getMenuVO("/machine/testScript","testScript","/machine/testScript/index","Document","检测脚本"); -// MenuVO menuVO12 = getMenuVO("/machine/device","device","/machine/device/index","Cpu","被检设备"); -// MenuVO menuVO13 = getMenuVO("/machine/errorSystem","errorSystem","/machine/errorSystem/index","Tickets","误差体系"); -// MenuVO menuVO14 = getMenuVO("/machine/testSource","testSource","/machine/testSource/index","Help","检测源"); -// MenuVO menuVO15 = getMenuVO("/machine/devType","devType","/machine/devType/index","Cpu","设备类型"); -// menuVO1.setChildren(CollectionUtil.toList(menuVO11,menuVO12,menuVO13,menuVO14,menuVO15)); -// menuVOList.add(menuVO1); -// -// -// -// MenuVO menuVO2 = getMenuVORedirect("/authority","authority","/authority/user","Menu","权限管理"); -// MenuVO menuVO21 = getMenuVO("/authority/user","user","/authority/user/index","UserFilled","用户管理"); -// MenuVO menuVO22 = getMenuVO("/authority/role","role","/authority/role/index","Avatar","角色管理"); -// MenuVO menuVO23 = getMenuVO("/authority/resource","resource","/authority/resource/index","Connection","菜单管理"); -// menuVO2.setChildren(CollectionUtil.toList(menuVO21,menuVO22,menuVO23)); -// menuVOList.add(menuVO2); -// -// -// MenuVO menuVO3 = getMenuVORedirect("/system","system","/system/base","Tools","系统配置"); -// MenuVO menuVO31 = getMenuVO("/system/base","base","/system/base/index","UserFilled","通用配置"); -// MenuVO menuVO32 = getMenuVO("/system/dict","dict","/system/dictionary/dictType/index","DataAnalysis","数据字典"); -// MenuVO menuVO33 = getMenuVO("/system/dictTree","dictTree","/system/dictionary/dictTree/index","DataAnalysis","树形字典"); -// MenuVO menuVO34 = getMenuVO("/system/dictPq","dictPq","/system/dictionary/dictPq/index","DataAnalysis","电能质量字典"); -// MenuVO menuVO35 = getMenuVO("/system/template","template","/system/template/index","Memo","报告模板"); -// MenuVO menuVO36 = getMenuVO("/system/versionRegister","versionRegister","/system/versionRegister/index","SetUp","版本注册"); -// menuVO3.setChildren(CollectionUtil.toList(menuVO31,menuVO32,menuVO33,menuVO34,menuVO35,menuVO36)); -// menuVOList.add(menuVO3); -// -// MenuVO menuVO4 = getMenuVO("/log","log","/log/index","TrendCharts","日志管理"); -// menuVOList.add(menuVO4); -// -// -// MenuVO menuVO5 = getMenuVO("/analyse","analyse","/analyse/index","Monitor","统计分析"); -// menuVOList.add(menuVO5); -// -// -// MenuVO menuVO6 = getMenuVORedirect("/demo","demo","/system/demo","Tools","示例"); -// MenuVO menuVO61 = getMenuVO("/system/proTable","table","/demo/proTable/index","UserFilled","普通表格"); -// MenuVO menuVO62 = getMenuVO("/system/proTableTree","tableTree","/demo/proTableTree/index","DataAnalysis","表格树"); -// menuVO6.setChildren(CollectionUtil.toList(menuVO61,menuVO62)); -// menuVOList.add(menuVO6); -// -// -// -// HttpResult> result = new HttpResult<>(); -// result.setData(menuVOList); -// result.setCode("A0000"); -// result.setMessage("成功"); -// return result; -// } -// -// private static MenuVO getMenuVO(String path, String name, String component,String icon,String title) { -// MenuVO menu = new MenuVO(); -// menu.setPath(path); -// menu.setName(name); -// menu.setComponent(component); -// -// MetaVO meta = new MetaVO(); -// meta.setIcon(icon); -// meta.setTitle(title); -// meta.setIsLink(""); -// meta.setHide(false); -// meta.setFull(false); -// meta.setAffix(false); -// meta.setKeepAlive(true); -// -// menu.setMeta(meta); -// -// return menu; -// } -// -// private static MenuVO getMenuVORedirect(String path, String name, String component,String icon,String title) { -// MenuVO menu = new MenuVO(); -// menu.setPath(path); -// menu.setName(name); -// menu.setRedirect(component); -// -// MetaVO meta = new MetaVO(); -// meta.setIcon(icon); -// meta.setTitle(title); -// meta.setIsLink(""); -// meta.setHide(false); -// meta.setFull(false); -// meta.setAffix(false); -// meta.setKeepAlive(true); -// -// menu.setMeta(meta); -// -// return menu; -// } -} diff --git a/system/src/main/java/com/njcn/gather/system/menu/pojo/ButtonVO.java b/system/src/main/java/com/njcn/gather/system/menu/pojo/ButtonVO.java deleted file mode 100644 index 948f481e..00000000 --- a/system/src/main/java/com/njcn/gather/system/menu/pojo/ButtonVO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.njcn.gather.system.menu.pojo; - -import cn.hutool.core.collection.CollectionUtil; -import lombok.Data; - -import java.util.List; - -@Data -public class ButtonVO { - - private List useProTable = CollectionUtil.toList("add", - "batchAdd", - "export", - "batchDelete", - "status"); - private List authButton = CollectionUtil.toList( "add", - "edit", - "delete", - "import", - "export"); -} diff --git a/user/src/main/java/com/njcn/gather/user/pojo/enums/UserResponseEnum.java b/user/src/main/java/com/njcn/gather/user/pojo/enums/UserResponseEnum.java index 98058d7e..db81cf50 100644 --- a/user/src/main/java/com/njcn/gather/user/pojo/enums/UserResponseEnum.java +++ b/user/src/main/java/com/njcn/gather/user/pojo/enums/UserResponseEnum.java @@ -21,7 +21,8 @@ public enum UserResponseEnum { SUPER_ADMIN_CANNOT_DELETE("A010010", "禁止删除超级管理员用户"), COMPONENT_NOT_BLANK("A010011", "组件地址不能为空"), FUNCTION_PATH_FORMAT_ERROR("A010012", "路由地址格式错误"), - SUPER_ADMIN_REPEAT("A010013","超级管理员已存在,请勿重复添加" ); + SUPER_ADMIN_REPEAT("A010013","超级管理员已存在,请勿重复添加" ), + RSA_DECRYT_ERROR("A010014","RSA解密失败" ); private String code; private String message; diff --git a/user/src/main/java/com/njcn/gather/user/user/controller/AuthController.java b/user/src/main/java/com/njcn/gather/user/user/controller/AuthController.java index 4228486d..aaac3b7b 100644 --- a/user/src/main/java/com/njcn/gather/user/user/controller/AuthController.java +++ b/user/src/main/java/com/njcn/gather/user/user/controller/AuthController.java @@ -10,10 +10,13 @@ import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.constant.SecurityConstants; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.JwtUtil; import com.njcn.common.utils.LogUtil; +import com.njcn.common.utils.RSAUtil; import com.njcn.gather.user.pojo.constant.UserValidMessage; +import com.njcn.gather.user.pojo.enums.UserResponseEnum; import com.njcn.gather.user.user.pojo.param.SysUserParam; import com.njcn.gather.user.user.pojo.po.SysUser; import com.njcn.gather.user.user.pojo.po.Token; @@ -27,6 +30,8 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import java.security.KeyPair; +import java.util.Base64; import java.util.HashMap; import java.util.Map; @@ -40,6 +45,7 @@ public class AuthController extends BaseController { private final ISysUserService sysUserService; private final CustomCacheUtil customCacheUtil; + private KeyPair keyPair; @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.AUTHENTICATE) @@ -48,7 +54,16 @@ public class AuthController extends BaseController { public HttpResult login(@RequestBody SysUserParam.LoginParam param) { String methodDescribe = getMethodDescribe("login"); LogUtil.njcnDebug(log, "{},登录参数为:{}", methodDescribe, param); - SysUser user = sysUserService.getUserByLoginNameAndPassword(param.getUsername(), param.getPassword()); + byte[] decode = Base64.getDecoder().decode(param.getUsername()); + String username = new String(decode); + String password = null; + try { + password = RSAUtil.decrypt(param.getPassword(), keyPair.getPrivate()); + } catch (Exception e) { + throw new BusinessException(UserResponseEnum.RSA_DECRYT_ERROR); + } + + SysUser user = sysUserService.getUserByLoginNameAndPassword(username, password); if (ObjectUtil.isNull(user)) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, UserValidMessage.LOGIN_FAILED); } else { @@ -64,6 +79,7 @@ public class AuthController extends BaseController { token.setUserInfo(map); customCacheUtil.putWithExpireTime(accessToken, JSON.toJSONString(user), DateUnit.DAY.getMillis() * Integer.MAX_VALUE); + sysUserService.updateLoginTime(user.getId()); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, token, methodDescribe); } } @@ -109,4 +125,15 @@ public class AuthController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); } } + + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取RSA公钥") + @GetMapping("/getPublicKey") + public HttpResult publicKey() throws Exception { + String methodDescribe = getMethodDescribe("publicKey"); + LogUtil.njcnDebug(log, "{},获取RSA公钥", methodDescribe); + keyPair = RSAUtil.generateKeyPair(); + + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, RSAUtil.publicKeyToString(keyPair.getPublic()), methodDescribe); + } } diff --git a/user/src/main/java/com/njcn/gather/user/user/filter/AuthGlobalFilter.java b/user/src/main/java/com/njcn/gather/user/user/filter/AuthGlobalFilter.java index 03ca7f34..b2238322 100644 --- a/user/src/main/java/com/njcn/gather/user/user/filter/AuthGlobalFilter.java +++ b/user/src/main/java/com/njcn/gather/user/user/filter/AuthGlobalFilter.java @@ -25,7 +25,7 @@ import java.util.List; @Slf4j @Component public class AuthGlobalFilter implements Filter, Ordered { - private final static List IGNORE_URI = Arrays.asList("/admin/login", "/report/generateReport"); + private final static List IGNORE_URI = Arrays.asList("/admin/login","/admin/getPublicKey", "/report/generateReport"); @Override public int getOrder() { diff --git a/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java b/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java index 72de0b38..8b8eed59 100644 --- a/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java +++ b/user/src/main/java/com/njcn/gather/user/user/pojo/param/SysUserParam.java @@ -24,7 +24,6 @@ public class SysUserParam { private String name; @ApiModelProperty("部门Id") - @Pattern(regexp = PatternRegex.SYSTEM_ID, message = UserValidMessage.DEPT_ID_FORMAT_ERROR) private String deptId; @ApiModelProperty("电话号码") diff --git a/system/src/main/java/com/njcn/gather/system/menu/pojo/MenuVO.java b/user/src/main/java/com/njcn/gather/user/user/pojo/po/MenuVO.java similarity index 93% rename from system/src/main/java/com/njcn/gather/system/menu/pojo/MenuVO.java rename to user/src/main/java/com/njcn/gather/user/user/pojo/po/MenuVO.java index 4bc15f9a..5f17760a 100644 --- a/system/src/main/java/com/njcn/gather/system/menu/pojo/MenuVO.java +++ b/user/src/main/java/com/njcn/gather/user/user/pojo/po/MenuVO.java @@ -1,4 +1,4 @@ -package com.njcn.gather.system.menu.pojo; +package com.njcn.gather.user.user.pojo.po; import lombok.Data; diff --git a/system/src/main/java/com/njcn/gather/system/menu/pojo/MetaVO.java b/user/src/main/java/com/njcn/gather/user/user/pojo/po/MetaVO.java similarity index 95% rename from system/src/main/java/com/njcn/gather/system/menu/pojo/MetaVO.java rename to user/src/main/java/com/njcn/gather/user/user/pojo/po/MetaVO.java index 8c705410..35f71135 100644 --- a/system/src/main/java/com/njcn/gather/system/menu/pojo/MetaVO.java +++ b/user/src/main/java/com/njcn/gather/user/user/pojo/po/MetaVO.java @@ -1,4 +1,4 @@ -package com.njcn.gather.system.menu.pojo; +package com.njcn.gather.user.user.pojo.po; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; diff --git a/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java b/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java index 4cab6ea7..251fcb51 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/ISysUserService.java @@ -117,10 +117,9 @@ public interface ISysUserService extends IService { SysUser getUserByLoginNameAndPassword(String loginName, String password); /** - * 根据用户ID判断是否是管理员用户 - * @param userId 用户ID - * @return true表示是管理员用户,false表示不是管理员用户 + * 更新用户登录时间为当前时间 + * + * @param userId */ - boolean isAdmin(String userId); - + boolean updateLoginTime(String userId); } diff --git a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysFunctionServiceImpl.java b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysFunctionServiceImpl.java index 0455830b..28653633 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysFunctionServiceImpl.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysFunctionServiceImpl.java @@ -63,11 +63,7 @@ public class SysFunctionServiceImpl extends ServiceImpl childrenList = this.lambdaQuery().eq(SysFunction::getState, DataStateEnum.ENABLE.getCode()).eq(SysFunction::getPid, id).list(); if (CollectionUtils.isEmpty(childrenList)) { result1 = this.lambdaUpdate().set(SysFunction::getState, DataStateEnum.DELETED.getCode()).in(SysFunction::getId, id).update(); -// if (result) { -// refreshRolesFunctionsCache(); -// } } else { throw new BusinessException(UserResponseEnum.EXISTS_CHILDREN_NOT_DELETE); } diff --git a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysRoleServiceImpl.java b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysRoleServiceImpl.java index 32db09b7..43bb6b09 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysRoleServiceImpl.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysRoleServiceImpl.java @@ -103,20 +103,6 @@ public class SysRoleServiceImpl extends ServiceImpl impl return this.baseMapper.selectList(lambdaQueryWrapper); } -// @Override -// public boolean selectRelevance(List ids) { -// // 判断角色是否和用户绑定 -// List userRoleList = this.userRoleMapper.selectUserRole(ids); -// // 判断角色是否和资源绑定 -// List roleFunctionList = this.roleFunctionMapper.selectRoleFunction(ids); -// // 判断角色是否和组件绑定 -// List roleComponentList = this.roleComponentMapper.selectRoleComponet(ids); -// if (!userRoleList.isEmpty() || !roleComponentList.isEmpty() || !roleFunctionList.isEmpty()) { -// return true; -// } -// return false; -// } - /** * 校验参数,检查是否存在相同名称或编码的角色 */ diff --git a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java index 803384ae..ed978005 100644 --- a/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java +++ b/user/src/main/java/com/njcn/gather/user/user/service/impl/SysUserServiceImpl.java @@ -58,7 +58,7 @@ public class SysUserServiceImpl extends ServiceImpl impl } else { queryWrapper.orderByDesc("sys_user.update_time"); } - queryWrapper.ne("sys_user.Login_Name", UserConst.SUPER_ADMIN).ne("sys_user.state", UserConst.STATE_DELETE); + queryWrapper.ne("sys_user.state", UserConst.STATE_DELETE); Page page = this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam), PageFactory.getPageSize(queryParam)), queryWrapper); page.getRecords().forEach(sysUser -> { List sysRoles = sysUserRoleService.listRoleByUserId(sysUser.getId()); @@ -126,7 +126,6 @@ public class SysUserServiceImpl extends ServiceImpl impl String secretkey = Sm4Utils.globalSecretKey; Sm4Utils sm4 = new Sm4Utils(secretkey); sysUser.setPassword(sm4.encryptData_ECB(sysUser.getPassword())); - // todo 别忘记移除登录时间 sysUser.setLoginTime(LocalDateTimeUtil.now()); sysUser.setLoginErrorTimes(0); sysUser.setState(UserConst.STATE_ENABLE); @@ -200,17 +199,8 @@ public class SysUserServiceImpl extends ServiceImpl impl } @Override - public boolean isAdmin(String userId) { - SysUser user = lambdaQuery().ne(SysUser::getState, UserConst.STATE_DELETE).eq(SysUser::getId, userId).one(); - if (ObjectUtil.isNotNull(user)) { - List sysRoles = sysUserRoleService.listRoleByUserId(user.getId()); - for (SysRole sysRole : sysRoles) { - if (sysRole.getType().compareTo(RoleConst.TYPE_ADMINISTRATOR) <= 0) { - return true; - } - } - } - return false; + public boolean updateLoginTime(String userId) { + return this.lambdaUpdate().eq(SysUser::getId, userId).set(SysUser::getLoginTime, LocalDateTimeUtil.now()).update(); } /**