From 23b506d395aabee95c307db7af6654a619ed7f25 Mon Sep 17 00:00:00 2001 From: MAC <1162714483@qq.com> Date: Sun, 16 Apr 2023 14:25:33 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../filter/JwtAuthenticationTokenFilter.java | 35 ++++++++++++++++--- .../file/controller/UserController.java | 12 +++---- .../file/dto/file/EditOfficeFileDTO.java | 2 +- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/qiwenshare/file/config/security/filter/JwtAuthenticationTokenFilter.java b/src/main/java/com/qiwenshare/file/config/security/filter/JwtAuthenticationTokenFilter.java index 14513a0..920654c 100644 --- a/src/main/java/com/qiwenshare/file/config/security/filter/JwtAuthenticationTokenFilter.java +++ b/src/main/java/com/qiwenshare/file/config/security/filter/JwtAuthenticationTokenFilter.java @@ -1,5 +1,6 @@ package com.qiwenshare.file.config.security.filter; +import com.qiwenshare.common.exception.NotLoginException; import com.qiwenshare.common.exception.QiwenException; import com.qiwenshare.file.service.SysParamService; import com.qiwenshare.file.service.UserService; @@ -19,13 +20,29 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.Arrays; +import java.util.List; /** * Jwt过滤器(第一个过滤器):获取用户token,查询用户信息拼装到security中,以便后续filter使用 */ @Component public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { - + private String[] ignoreUri = {"/user/register", + "/user/login", + "/user/checkuserlogininfo", + "/filetransfer/downloadfile", + "/filetransfer/preview", + "/share/sharefileList", + "/share/sharetype", + "/share/checkextractioncode", + "/share/checkendtime", + "/notice/list", + "/notice/detail", + "/param/grouplist", + "/error/**", + "/swagger-ui.html", + }; @Autowired private UserService userService; @Resource @@ -42,13 +59,21 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { throw new QiwenException(999999, "脚本未初始化,请在数据库执行数据初始化脚本,存放路径: '/resources/import.sql'!"); } + List ignoreUriList = Arrays.asList(ignoreUri); + if (ignoreUriList.contains(request.getRequestURI())) { + chain.doFilter(request, response); + return; + } String token = request.getHeader("token"); - if (StringUtils.isNotBlank(token) && !"undefined".equals(token)) { - + if (StringUtils.isEmpty(token)) { + throw new NotLoginException("用户未登录"); + } else { String userId = userService.getUserIdByToken(token); - + if (userId == null) { + throw new NotLoginException("用户未登录"); + } // 验证 - if (userId != null && SecurityContextHolder.getContext().getAuthentication() == null) { + if (SecurityContextHolder.getContext().getAuthentication() == null) { UserDetails userDetails = userService.loadUserByUsername(String.valueOf(userId)); if (userDetails.isEnabled()) { UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken = new UsernamePasswordAuthenticationToken( diff --git a/src/main/java/com/qiwenshare/file/controller/UserController.java b/src/main/java/com/qiwenshare/file/controller/UserController.java index 3eacfd6..e1ecb9f 100644 --- a/src/main/java/com/qiwenshare/file/controller/UserController.java +++ b/src/main/java/com/qiwenshare/file/controller/UserController.java @@ -100,20 +100,20 @@ public class UserController { @Operation(summary = "检查用户登录信息", description = "验证token的有效性", tags = {"user"}) @GetMapping("/checkuserlogininfo") @ResponseBody - public RestResult checkUserLoginInfo() { + public RestResult checkUserLoginInfo(@RequestHeader("token") String token) { UserLoginVo userLoginVo = new UserLoginVo(); - JwtUser sessionUserBean = SessionUtil.getSession(); + String userId = userService.getUserIdByToken(token); - if (sessionUserBean != null && !"anonymousUser".equals(sessionUserBean.getUsername())) { + if (StringUtils.isNotEmpty(userId)) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(UserLoginInfo::getUserId, sessionUserBean.getUserId()); + lambdaQueryWrapper.eq(UserLoginInfo::getUserId, userId); lambdaQueryWrapper.likeRight(UserLoginInfo::getUserloginDate, DateUtil.getCurrentTime().substring(0, 10)); userLoginInfoService.remove(lambdaQueryWrapper); UserLoginInfo userLoginInfo = new UserLoginInfo(); - userLoginInfo.setUserId(sessionUserBean.getUserId()); + userLoginInfo.setUserId(userId); userLoginInfo.setUserloginDate(DateUtil.getCurrentTime()); userLoginInfoService.save(userLoginInfo); - UserBean user = userService.getById(sessionUserBean.getUserId()); + UserBean user = userService.getById(userId); BeanUtil.copyProperties(user, userLoginVo); if (StringUtils.isEmpty(user.getWxOpenId())) { userLoginVo.setHasWxAuth(false); diff --git a/src/main/java/com/qiwenshare/file/dto/file/EditOfficeFileDTO.java b/src/main/java/com/qiwenshare/file/dto/file/EditOfficeFileDTO.java index 45f5732..9a85a9c 100644 --- a/src/main/java/com/qiwenshare/file/dto/file/EditOfficeFileDTO.java +++ b/src/main/java/com/qiwenshare/file/dto/file/EditOfficeFileDTO.java @@ -5,7 +5,7 @@ import lombok.Data; @Data public class EditOfficeFileDTO { private String userFileId; - private String previewUrl; +// private String previewUrl; // private String filePath; // private String fileName; // private String extendName; From 36b893de6ac83736de227988846974f02b0832cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E8=B6=85?= <1162714483@qq.com> Date: Wed, 19 Apr 2023 10:41:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(=E6=96=87=E4=BB=B6=E5=88=9B=E5=BB=BA&?= =?UTF-8?q?=E4=BF=AE=E6=94=B9):=20=E7=94=A8=E6=88=B7=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=A1=A8=E6=96=B0=E5=A2=9E=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=92=8C=E4=BF=AE=E6=94=B9=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/qiwenshare/file/component/FileDealComp.java | 3 +++ .../qiwenshare/file/controller/FileController.java | 3 ++- .../java/com/qiwenshare/file/domain/UserFile.java | 13 ++++++++++++- .../com/qiwenshare/file/service/FileService.java | 2 ++ .../com/qiwenshare/file/util/QiwenFileUtil.java | 5 +++++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/qiwenshare/file/component/FileDealComp.java b/src/main/java/com/qiwenshare/file/component/FileDealComp.java index 431645b..baceb6f 100644 --- a/src/main/java/com/qiwenshare/file/component/FileDealComp.java +++ b/src/main/java/com/qiwenshare/file/component/FileDealComp.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qiwenshare.common.util.DateUtil; import com.qiwenshare.common.util.MusicUtils; +import com.qiwenshare.common.util.security.SessionUtil; import com.qiwenshare.file.api.IShareFileService; import com.qiwenshare.file.api.IShareService; import com.qiwenshare.file.api.IUserService; @@ -404,6 +405,8 @@ public class FileDealComp { fileMapper.insert(fileBean); userFile.setFileId(fileBean.getFileId()); userFile.setUploadTime(DateUtil.getCurrentTime()); + userFile.setModifyTime(DateUtil.getCurrentTime()); + userFile.setModifyUserId(SessionUtil.getUserId()); userFileMapper.updateById(userFile); return fileUrl; } diff --git a/src/main/java/com/qiwenshare/file/controller/FileController.java b/src/main/java/com/qiwenshare/file/controller/FileController.java index 8a87765..97b7b40 100644 --- a/src/main/java/com/qiwenshare/file/controller/FileController.java +++ b/src/main/java/com/qiwenshare/file/controller/FileController.java @@ -132,7 +132,8 @@ public class FileController { userFile.setExtendName(extendName); userFile.setUploadTime(DateUtil.getCurrentTime()); userFile.setFileId(fileBean.getFileId()); - + userFile.setCreateTime(DateUtil.getCurrentTime()); + userFile.setCreateUserId(SessionUtil.getUserId()); userFileService.save(userFile); } return RestResult.success().message("文件创建成功"); diff --git a/src/main/java/com/qiwenshare/file/domain/UserFile.java b/src/main/java/com/qiwenshare/file/domain/UserFile.java index 30b8ff5..2cdec84 100644 --- a/src/main/java/com/qiwenshare/file/domain/UserFile.java +++ b/src/main/java/com/qiwenshare/file/domain/UserFile.java @@ -54,6 +54,14 @@ public class UserFile { @Column(columnDefinition = "varchar(50) comment '删除批次号'") private String deleteBatchNum; + @Column(columnDefinition="varchar(30) comment '创建时间'") + private String createTime; + @Column(columnDefinition="varchar(20) comment '创建用户id'") + private String createUserId; + @Column(columnDefinition="varchar(30) comment '修改时间'") + private String modifyTime; + @Column(columnDefinition="varchar(20) comment '修改用户id'") + private String modifyUserId; public UserFile() {}; public UserFile(QiwenFile qiwenFile, String userId, String fileId) { @@ -64,7 +72,10 @@ public class UserFile { this.fileName = qiwenFile.getNameNotExtend(); this.extendName = qiwenFile.getExtendName(); this.isDir = qiwenFile.isDirectory() ? 1 : 0; - this.uploadTime = DateUtil.getCurrentTime(); + String currentTime = DateUtil.getCurrentTime(); + this.setUploadTime(currentTime); + this.setCreateUserId(userId); + this.setCreateTime(currentTime); this.deleteFlag = 0; } diff --git a/src/main/java/com/qiwenshare/file/service/FileService.java b/src/main/java/com/qiwenshare/file/service/FileService.java index 84786de..8c739ff 100644 --- a/src/main/java/com/qiwenshare/file/service/FileService.java +++ b/src/main/java/com/qiwenshare/file/service/FileService.java @@ -134,6 +134,8 @@ public class FileService extends ServiceImpl implements IF fileBean.setFileId(userFile.getFileId()); fileMapper.updateById(fileBean); userFile.setUploadTime(currentTime); + userFile.setModifyTime(currentTime); + userFile.setModifyUserId(SessionUtil.getUserId()); userFileMapper.updateById(userFile); } diff --git a/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java b/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java index a7a52a5..839e970 100644 --- a/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java +++ b/src/main/java/com/qiwenshare/file/util/QiwenFileUtil.java @@ -2,6 +2,7 @@ package com.qiwenshare.file.util; import cn.hutool.core.util.IdUtil; import com.qiwenshare.common.util.DateUtil; +import com.qiwenshare.common.util.security.SessionUtil; import com.qiwenshare.file.domain.UserFile; import com.qiwenshare.file.io.QiwenFile; @@ -18,6 +19,8 @@ public class QiwenFileUtil { userFile.setExtendName(null); userFile.setIsDir(1); userFile.setUploadTime(DateUtil.getCurrentTime()); + userFile.setCreateUserId(SessionUtil.getUserId()); + userFile.setCreateTime(DateUtil.getCurrentTime()); userFile.setDeleteFlag(0); userFile.setDeleteBatchNum(null); return userFile; @@ -33,6 +36,8 @@ public class QiwenFileUtil { userFile.setExtendName(extendName); userFile.setIsDir(0); userFile.setUploadTime(DateUtil.getCurrentTime()); + userFile.setCreateTime(DateUtil.getCurrentTime()); + userFile.setCreateUserId(SessionUtil.getUserId()); userFile.setDeleteFlag(0); userFile.setDeleteBatchNum(null); return userFile;