From a7f373101fcd5fc5dd8a8745184c9b699020b8f3 Mon Sep 17 00:00:00 2001 From: fanxb Date: Sun, 17 Nov 2019 17:31:21 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Feat:=20[=E5=90=8E=E5=8F=B0]:?= =?UTF-8?q?=E5=89=8D=E5=8F=B0=E5=AF=B9=E6=8E=A5=E4=BF=AE=E6=94=B9=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/user/constant/FileConstant.java | 10 +--------- .../user/controller/BaseInfoController.java | 2 +- .../business/user/entity/EmailUpdateBody.java | 4 +--- .../user/entity/UpdatePasswordBody.java | 5 ++--- .../user/service/BaseInfoService.java | 13 +++++++------ .../business/user/service/UserService.java | 11 ++++++++--- .../bookmark/common/filter/LoginFilter.java | 7 ++++++- .../fanxb/bookmark/common/util/FileUtil.java | 19 +++++++++++++++---- 8 files changed, 41 insertions(+), 30 deletions(-) diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/constant/FileConstant.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/constant/FileConstant.java index ce42280..50a6942 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/constant/FileConstant.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/constant/FileConstant.java @@ -20,14 +20,6 @@ public class FileConstant { /** * 用户头像目录 */ - public static String iconPath = Paths.get("static", "public", "icon").toString(); + public static String iconPath = Paths.get("files", "public", "icon").toString(); - - @PostConstruct - private void init() { - File file = Paths.get(Constant.fileSavePath, iconPath).toFile(); - if (!file.exists()) { - file.mkdirs(); - } - } } diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/BaseInfoController.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/BaseInfoController.java index 22d0375..e633f7e 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/BaseInfoController.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/controller/BaseInfoController.java @@ -35,7 +35,7 @@ public class BaseInfoController { * @date 2019/9/18 15:49 */ @PostMapping("/password") - public Result changePassword(@Valid @RequestBody UpdatePasswordBody body) { + public Result changePassword(@Validated @RequestBody UpdatePasswordBody body) { this.baseInfoService.changePassword(body); return Result.success(null); } diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/EmailUpdateBody.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/EmailUpdateBody.java index d80a50f..5f4fefb 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/EmailUpdateBody.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/EmailUpdateBody.java @@ -16,10 +16,8 @@ import javax.validation.constraints.Pattern; */ @Data public class EmailUpdateBody { -// @Pattern(regexp = ValidatedConstant.PASSWORD_REG, message = ValidatedConstant.PASSWORD_MESSAGE) -// private String oldPass; @NotNull(message = "参数不为空") private String actionId; @Email(message = "请输入有效邮箱地址") - private String newEmail; + private String email; } diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/UpdatePasswordBody.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/UpdatePasswordBody.java index c6e4687..82357fc 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/UpdatePasswordBody.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/entity/UpdatePasswordBody.java @@ -15,8 +15,7 @@ import javax.validation.constraints.Pattern; @Data public class UpdatePasswordBody { + private String actionId; @Pattern(regexp = ValidatedConstant.PASSWORD_REG, message = ValidatedConstant.PASSWORD_MESSAGE) - private String oldPass; - @Pattern(regexp = ValidatedConstant.PASSWORD_REG, message = ValidatedConstant.PASSWORD_MESSAGE) - private String newPass; + private String password; } diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/BaseInfoService.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/BaseInfoService.java index d1a9f8d..00dbec6 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/BaseInfoService.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/BaseInfoService.java @@ -37,11 +37,12 @@ public class BaseInfoService { public void changePassword(UpdatePasswordBody body) { int userId = UserContextHolder.get().getUserId(); - String realOldPass = userDao.selectByUserId(userId).getPassword(); - if (!realOldPass.equals(HashUtil.getPassword(body.getOldPass()))) { - throw new FormDataException("旧密码错误"); + String checkAuthKey = com.fanxb.bookmark.common.constant.RedisConstant.getPasswordCheckKey(userId, body.getActionId()); + String str = RedisUtil.get(checkAuthKey, String.class); + if (str == null) { + throw new CustomException("密码校验失败,无法更新密码"); } - userDao.updatePasswordByUserId(userId, HashUtil.getPassword(body.getNewPass())); + userDao.updatePasswordByUserId(userId, HashUtil.getPassword(body.getPassword())); } @@ -75,10 +76,10 @@ public class BaseInfoService { String secret = UUID.randomUUID().toString().replaceAll("-", ""); String url = VERIFY_EMAIL.replaceAll("XXXX", Constant.serviceAddress + VERIFY_EMAIL_PATH + secret); log.debug(url); - MailInfo info = new MailInfo(body.getNewEmail(), "验证邮箱", url); + MailInfo info = new MailInfo(body.getEmail(), "验证邮箱", url); MailUtil.sendMail(info, true); RedisUtil.set(RedisConstant.getUpdateEmailKey(secret), String.valueOf(userId), TimeUtil.DAY_MS); - userDao.updateNewEmailByUserId(userId, body.getNewEmail()); + userDao.updateNewEmailByUserId(userId, body.getEmail()); } /** diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/UserService.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/UserService.java index 5abefde..3dbe6f7 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/UserService.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/service/UserService.java @@ -16,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.io.File; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; @@ -182,8 +184,11 @@ public class UserService { } int userId = UserContextHolder.get().getUserId(); String fileName = file.getOriginalFilename(); - String path = Paths.get(FileConstant.iconPath, userId + fileName.substring(fileName.lastIndexOf("."))).toString(); - file.transferTo(Paths.get(Constant.fileSavePath, path)); + String path = Paths.get(FileConstant.iconPath, userId + "." + System.currentTimeMillis() + fileName.substring(fileName.lastIndexOf("."))).toString(); + Path realPath = Paths.get(Constant.fileSavePath, path); + FileUtil.ensurePathExist(realPath.getParent().toString()); + file.transferTo(realPath); + path = File.separator + path; userDao.updateUserIcon(userId, path); return path; } @@ -205,7 +210,7 @@ public class UserService { } String actionId = UUID.randomUUID().toString().replaceAll("-", ""); String key = RedisConstant.getPasswordCheckKey(userId, actionId); - RedisUtil.set(key, "1", 10 * 60 * 1000); + RedisUtil.set(key, "1", 5 * 60 * 1000); return actionId; } } diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java index 5b1c70c..611b93d 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/filter/LoginFilter.java @@ -83,9 +83,14 @@ public class LoginFilter implements Filter { return; } + String requestUrl = request.getRequestURI().replace(urlPrefix, ""); + //放行静态文件 + if (requestUrl.startsWith("/static")) { + filterChain.doFilter(servletRequest, servletResponse); + return; + } UserContextHolder.remove(); List publicUrl = this.getPublicUrl(); - String requestUrl = request.getRequestURI().replace(urlPrefix, ""); for (Url url : publicUrl) { if (url.getMethod().equalsIgnoreCase(requestMethod) && matcher.match(url.getUrl(), requestUrl)) { filterChain.doFilter(servletRequest, servletResponse); diff --git a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/util/FileUtil.java b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/util/FileUtil.java index 758486c..cbe1025 100644 --- a/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/util/FileUtil.java +++ b/bookMarkService/common/src/main/java/com/fanxb/bookmark/common/util/FileUtil.java @@ -2,10 +2,7 @@ package com.fanxb.bookmark.common.util; import com.fanxb.bookmark.common.exception.CustomException; -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; +import java.io.*; import java.util.stream.Collectors; /** @@ -45,4 +42,18 @@ public class FileUtil { public static String streamToString(InputStream stream) { return streamToString(stream, "utf-8"); } + + /** + * 功能描述: 路径 + * + * @param path path + * @author fanxb + * @date 2019/11/14 0:27 + */ + public static void ensurePathExist(String path) { + File file = new File(path); + if (!file.exists()) { + file.mkdirs(); + } + } }