From 6c3f2d98446bbc8c15d153f4d021612241c26dda Mon Sep 17 00:00:00 2001 From: ronger Date: Thu, 13 Jan 2022 20:51:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?:art:=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/rymcu/forest/config/WebLogAspect.java | 7 +- .../java/com/rymcu/forest/util/Utils.java | 98 ++++++++++--------- 2 files changed, 53 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/rymcu/forest/config/WebLogAspect.java b/src/main/java/com/rymcu/forest/config/WebLogAspect.java index b250c92..995af56 100644 --- a/src/main/java/com/rymcu/forest/config/WebLogAspect.java +++ b/src/main/java/com/rymcu/forest/config/WebLogAspect.java @@ -1,5 +1,6 @@ package com.rymcu.forest.config; +import com.rymcu.forest.util.Utils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; @@ -48,14 +49,12 @@ public class WebLogAspect { // 接收到请求,记录请求内容 logger.info("WebLogAspect.doBefore()"); - ServletRequestAttributes attributes = - (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); - // 记录下请求内容 logger.info("URL : " + request.getRequestURL().toString()); logger.info("HTTP_METHOD : " + request.getMethod()); - logger.info("IP : " + request.getRemoteAddr()); + logger.info("IP : " + Utils.getIpAddress(request)); logger.info( "CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() diff --git a/src/main/java/com/rymcu/forest/util/Utils.java b/src/main/java/com/rymcu/forest/util/Utils.java index bc490e3..ef3d70a 100644 --- a/src/main/java/com/rymcu/forest/util/Utils.java +++ b/src/main/java/com/rymcu/forest/util/Utils.java @@ -37,19 +37,20 @@ public class Utils { String plain = Encodes.unescapeHtml(plainPassword); byte[] salt = Digests.generateSalt(SALT_SIZE); byte[] hashPassword = Digests.sha1(plain.getBytes(), salt, HASH_INTERATIONS); - return Encodes.encodeHex(salt)+Encodes.encodeHex(hashPassword); + return Encodes.encodeHex(salt) + Encodes.encodeHex(hashPassword); } /** - *一般检查工具密码比对 add by xlf 2018-11-8 + * 一般检查工具密码比对 add by xlf 2018-11-8 + * * @param pwd - * @param enpwd 加密的密码 + * @param enpwd 加密的密码 * @return */ - public static boolean comparePwd(String pwd,String enpwd){ - byte[] salt = Encodes.decodeHex(enpwd.substring(0,16)); + public static boolean comparePwd(String pwd, String enpwd) { + byte[] salt = Encodes.decodeHex(enpwd.substring(0, 16)); byte[] hashPassword = Digests.sha1(pwd.getBytes(), salt, HASH_INTERATIONS); - return enpwd.equals(Encodes.encodeHex(salt)+Encodes.encodeHex(hashPassword)); + return enpwd.equals(Encodes.encodeHex(salt) + Encodes.encodeHex(hashPassword)); } public static User getCurrentUser() { @@ -57,33 +58,34 @@ public class Utils { } public static Session getSession() { - try{ + try { Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(false); - if (session == null){ + if (session == null) { session = subject.getSession(); } - if (session != null){ + if (session != null) { return session; } subject.logout(); - }catch (InvalidSessionException e){ + } catch (InvalidSessionException e) { } return null; } public static Integer genCode() { - Integer code = (int)((Math.random()*9+1)*100000); + Integer code = (int) ((Math.random() * 9 + 1) * 100000); return code; } /** * 获取配置文件内属性 + * * @param key 键值 * @return 属性值 - * */ - public static String getProperty(String key){ + */ + public static String getProperty(String key) { return env.getProperty(key); } @@ -99,24 +101,24 @@ public class Utils { LocalDate today = LocalDate.now(); Period p = Period.between(oldLocalDate, today); - if(p.getYears() > 0){ - timeAgo = p.getYears()+" 年前 "; - }else if(p.getMonths() > 0){ - timeAgo = p.getMonths()+" 月前 "; - }else if(p.getDays() > 0){ - timeAgo = p.getDays()+" 天前 "; - }else { + if (p.getYears() > 0) { + timeAgo = p.getYears() + " 年前 "; + } else if (p.getMonths() > 0) { + timeAgo = p.getMonths() + " 月前 "; + } else if (p.getDays() > 0) { + timeAgo = p.getDays() + " 天前 "; + } else { long to = System.currentTimeMillis(); long from = date.getTime(); - int hours = (int) ((to - from)/(1000 * 60 * 60)); - if(hours > 0){ - timeAgo = hours+" 小时前 "; - }else { - int minutes = (int) ((to - from)/(1000 * 60)); - if(minutes == 0){ + int hours = (int) ((to - from) / (1000 * 60 * 60)); + if (hours > 0) { + timeAgo = hours + " 小时前 "; + } else { + int minutes = (int) ((to - from) / (1000 * 60)); + if (minutes == 0) { timeAgo = " 刚刚 "; - }else { - timeAgo = minutes+" 分钟前 "; + } else { + timeAgo = minutes + " 分钟前 "; } } } @@ -125,13 +127,13 @@ public class Utils { public static Map getPagination(PageInfo pageInfo) { Map pagination = new HashMap(3); - pagination.put("pageSize",pageInfo.getPageSize()); - pagination.put("total",pageInfo.getTotal()); - pagination.put("currentPage",pageInfo.getPageNum()); + pagination.put("pageSize", pageInfo.getPageSize()); + pagination.put("total", pageInfo.getTotal()); + pagination.put("currentPage", pageInfo.getPageNum()); return pagination; } - public static void main(String[] args){ + public static void main(String[] args) { String s = entryptPassword("admin"); System.out.println(s); } @@ -140,9 +142,9 @@ public class Utils { Map map = new HashMap(2); map.put("articles", pageInfo.getList()); Map pagination = new HashMap(4); - pagination.put("pageSize",pageInfo.getPageSize()); - pagination.put("total",pageInfo.getTotal()); - pagination.put("currentPage",pageInfo.getPageNum()); + pagination.put("pageSize", pageInfo.getPageSize()); + pagination.put("total", pageInfo.getTotal()); + pagination.put("currentPage", pageInfo.getPageNum()); map.put("pagination", pagination); return map; } @@ -151,9 +153,9 @@ public class Utils { Map map = new HashMap(2); map.put("users", pageInfo.getList()); Map pagination = new HashMap(4); - pagination.put("pageSize",pageInfo.getPageSize()); - pagination.put("total",pageInfo.getTotal()); - pagination.put("currentPage",pageInfo.getPageNum()); + pagination.put("pageSize", pageInfo.getPageSize()); + pagination.put("total", pageInfo.getTotal()); + pagination.put("currentPage", pageInfo.getPageNum()); map.put("pagination", pagination); return map; } @@ -162,9 +164,9 @@ public class Utils { Map map = new HashMap(2); map.put("portfolios", pageInfo.getList()); Map pagination = new HashMap(4); - pagination.put("pageSize",pageInfo.getPageSize()); - pagination.put("total",pageInfo.getTotal()); - pagination.put("currentPage",pageInfo.getPageNum()); + pagination.put("pageSize", pageInfo.getPageSize()); + pagination.put("total", pageInfo.getTotal()); + pagination.put("currentPage", pageInfo.getPageNum()); map.put("pagination", pagination); return map; } @@ -173,9 +175,9 @@ public class Utils { Map map = new HashMap(2); map.put("notifications", pageInfo.getList()); Map pagination = new HashMap(4); - pagination.put("pageSize",pageInfo.getPageSize()); - pagination.put("total",pageInfo.getTotal()); - pagination.put("currentPage",pageInfo.getPageNum()); + pagination.put("pageSize", pageInfo.getPageSize()); + pagination.put("total", pageInfo.getTotal()); + pagination.put("currentPage", pageInfo.getPageNum()); map.put("pagination", pagination); return map; } @@ -202,16 +204,16 @@ public class Utils { ip = ip.substring(0, ip.indexOf(",")).trim(); } - return ip; + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; } public static Map getNotificationDTOsGlobalResult(PageInfo pageInfo) { Map map = new HashMap(2); map.put("notifications", pageInfo.getList()); Map pagination = new HashMap(4); - pagination.put("pageSize",pageInfo.getPageSize()); - pagination.put("total",pageInfo.getTotal()); - pagination.put("currentPage",pageInfo.getPageNum()); + pagination.put("pageSize", pageInfo.getPageSize()); + pagination.put("total", pageInfo.getTotal()); + pagination.put("currentPage", pageInfo.getPageNum()); map.put("pagination", pagination); return map; } From c13b0ca10ceb45058d988fd6e2e99acbca6c13f1 Mon Sep 17 00:00:00 2001 From: ronger Date: Thu, 13 Jan 2022 20:52:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?:art:=20=E4=BF=9D=E5=AD=98=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/api/common/UploadController.java | 51 +++++++++---------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/rymcu/forest/web/api/common/UploadController.java b/src/main/java/com/rymcu/forest/web/api/common/UploadController.java index bd723fa..565a231 100644 --- a/src/main/java/com/rymcu/forest/web/api/common/UploadController.java +++ b/src/main/java/com/rymcu/forest/web/api/common/UploadController.java @@ -115,11 +115,7 @@ public class UploadController { if (multipartFile == null) { return GlobalResultGenerator.genErrorResult("请选择要上传的文件"); } - //todo 无法获取当前登录用户 -// User user = UserUtils.getCurrentUserByToken(); -// if (Objects.isNull(user)) { -// throw new BaseApiException(ErrorCode.INVALID_TOKEN); -// } + TokenUser tokenUser = getTokenUser(request); Map data = new HashMap(2); String md5 = DigestUtils.md5DigestAsHex(multipartFile.getInputStream()); String fileUrl = forestFileService.getFileUrlByMd5(md5); @@ -146,7 +142,7 @@ public class UploadController { File saveFile = new File(savePath); try { FileCopyUtils.copy(multipartFile.getBytes(), saveFile); - forestFileService.insertForestFile(fileUrl, savePath, md5, 1); + forestFileService.insertForestFile(fileUrl, savePath, md5, tokenUser.getIdUser()); data.put("url", fileUrl); } catch (IOException e) { data.put("message", "上传失败!"); @@ -158,11 +154,7 @@ public class UploadController { @PostMapping("/file/batch") @Transactional(rollbackFor = Exception.class) public GlobalResult batchFileUpload(@RequestParam(value = "file[]", required = false) MultipartFile[] multipartFiles, @RequestParam(defaultValue = "1") Integer type, HttpServletRequest request) throws BaseApiException { - //todo 无法获取当前登录用户 -// User user = UserUtils.getCurrentUserByToken(); -// if (Objects.isNull(user)) { -// throw new BaseApiException(ErrorCode.INVALID_TOKEN); -// } + TokenUser tokenUser = getTokenUser(request); String typePath = getTypePath(type); //图片存储路径 String ctxHeadPicPath = env.getProperty("resource.pic-path"); @@ -173,7 +165,7 @@ public class UploadController { } String localPath = Utils.getProperty("resource.file-path") + "/" + typePath + "/"; - Map succMap = new HashMap(10); + Map successMap = new HashMap(16); Set errFiles = new HashSet(); for (int i = 0, len = multipartFiles.length; i < len; i++) { @@ -187,14 +179,14 @@ public class UploadController { String md5 = DigestUtils.md5DigestAsHex(in); String fileUrl = forestFileService.getFileUrlByMd5(md5); if (StringUtils.isNotEmpty(fileUrl)) { - succMap.put(orgName, fileUrl); + successMap.put(orgName, fileUrl); continue; } fileUrl = localPath + fileName; FileCopyUtils.copy(in, out); - forestFileService.insertForestFile(fileUrl, savePath, md5, 1); - succMap.put(orgName, localPath + fileName); + forestFileService.insertForestFile(fileUrl, savePath, md5, tokenUser.getIdUser()); + successMap.put(orgName, localPath + fileName); } catch (IOException e) { errFiles.add(orgName); } @@ -203,34 +195,37 @@ public class UploadController { } Map data = new HashMap(2); data.put("errFiles", errFiles); - data.put("succMap", succMap); + data.put("succMap", successMap); return GlobalResultGenerator.genSuccessResult(data); } + private TokenUser getTokenUser(HttpServletRequest request) throws BaseApiException { + String authHeader = request.getHeader(JwtConstants.AUTHORIZATION); + if (StringUtils.isBlank(authHeader)) { + throw new BaseApiException(ErrorCode.UNAUTHORIZED); + } + return UserUtils.getTokenUser(authHeader); + } + @GetMapping("/simple/token") public GlobalResult uploadSimpleToken(HttpServletRequest request) throws BaseApiException { - String authHeader = request.getHeader(JwtConstants.AUTHORIZATION); - if (StringUtils.isBlank(authHeader)) { - throw new BaseApiException(ErrorCode.UNAUTHORIZED); - } - TokenUser tokenUser = UserUtils.getTokenUser(authHeader); - Map map = new HashMap(2); - map.put("uploadToken", tokenUser.getToken()); - map.put("uploadURL", UPLOAD_SIMPLE_URL); - map.put("linkToImageURL", LINK_TO_IMAGE_URL); - return GlobalResultGenerator.genSuccessResult(map); + return getUploadToken(request, UPLOAD_SIMPLE_URL); } @GetMapping("/token") public GlobalResult uploadToken(HttpServletRequest request) throws BaseApiException { + return getUploadToken(request, UPLOAD_URL); + } + + private GlobalResult getUploadToken(HttpServletRequest request, String uploadUrl) throws BaseApiException { String authHeader = request.getHeader(JwtConstants.AUTHORIZATION); if (StringUtils.isBlank(authHeader)) { throw new BaseApiException(ErrorCode.UNAUTHORIZED); } TokenUser tokenUser = UserUtils.getTokenUser(authHeader); - Map map = new HashMap(2); + Map map = new HashMap(4); map.put("uploadToken", tokenUser.getToken()); - map.put("uploadURL", UPLOAD_URL); + map.put("uploadURL", uploadUrl); map.put("linkToImageURL", LINK_TO_IMAGE_URL); return GlobalResultGenerator.genSuccessResult(map); }