Sfoglia il codice sorgente

密码校验处理、获取第一帧处理

Long 2 settimane fa
parent
commit
d941155b65

+ 5 - 2
fs-admin/src/main/java/com/fs/course/controller/FsUserVideoController.java

@@ -3,6 +3,7 @@ package com.fs.course.controller;
 import java.io.*;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import com.fs.common.core.domain.R;
 import com.fs.course.param.FsUserVideoAddParam;
@@ -182,7 +183,7 @@ public class FsUserVideoController extends BaseController
         }
 
         // 保存上传的视频文件
-        String videoFileName = System.currentTimeMillis() + "_" + file.getOriginalFilename();
+        String videoFileName = System.currentTimeMillis() + "_" + UUID.randomUUID().toString().replaceAll("-", "").substring(0, 16);
         File videoFile = new File(VIDEO_UPLOAD_DIR, videoFileName);
         try {
             file.transferTo(videoFile);
@@ -227,7 +228,9 @@ public class FsUserVideoController extends BaseController
                 "ffmpeg",
                 "-i", videoPath,
 //                "-ss", "00:00:01.000", // 截取1秒处的帧
-                "-vframes", "1",
+                "-frames:v", "1",
+                "-f", "image2",
+                "-update", "1",
                 "-q:v", "10", // 质量,1为最好,31为最差
                 outputImagePath
         };

+ 1 - 1
fs-admin/src/main/java/com/fs/his/controller/FsCompanyController.java

@@ -165,7 +165,7 @@ public class FsCompanyController extends BaseController
     public AjaxResult resetPwd(@PathVariable Long companyId)
     {
         Company company=companyService.selectCompanyById(companyId);
-        return toAjax(userService.resetUserPwdByUserId(company.getUserId(), SecurityUtils.encryptPassword("123456")));
+        return toAjax(userService.resetUserPwdByUserId(company.getUserId(), SecurityUtils.encryptPassword("cq654321!!")));
     }
 
     @PreAuthorize("@ss.hasPermi('his:company:recharge')")

+ 5 - 0
fs-admin/src/main/java/com/fs/web/controller/system/SysLoginController.java

@@ -3,6 +3,8 @@ package com.fs.web.controller.system;
 import java.util.List;
 import java.util.Set;
 
+import com.fs.common.core.domain.R;
+import com.fs.common.utils.PatternUtils;
 import lombok.Synchronized;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -47,6 +49,9 @@ public class SysLoginController
     @PostMapping("/login")
     public AjaxResult login(@RequestBody LoginBody loginBody)
     {
+        if (!PatternUtils.checkPassword(loginBody.getPassword())) {
+            return AjaxResult.error("密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
+        }
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),

+ 7 - 0
fs-admin/src/main/java/com/fs/web/controller/system/SysProfileController.java

@@ -1,6 +1,8 @@
 package com.fs.web.controller.system;
 
 import java.io.IOException;
+
+import com.fs.common.utils.PatternUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -101,6 +103,11 @@ public class SysProfileController extends BaseController
         {
             return AjaxResult.error("修改密码失败,旧密码错误");
         }
+
+        if (!PatternUtils.checkPassword(newPassword)) {
+            return AjaxResult.error("新密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
+        }
+
         if (SecurityUtils.matchesPassword(newPassword, password))
         {
             return AjaxResult.error("新密码不能与旧密码相同");

+ 17 - 0
fs-common/src/main/java/com/fs/common/utils/PatternUtils.java

@@ -0,0 +1,17 @@
+package com.fs.common.utils;
+
+import java.util.regex.Pattern;
+
+public class PatternUtils {
+
+    private final static Pattern PWD = Pattern.compile("^(?=.*[A-Za-z])(?=.*\\d)(?=.*[^A-Za-z0-9]).{8,20}$");
+
+    /**
+     * 校验密码是否符合条件
+     * @param value 密码
+     * @return boolean
+     */
+    public static boolean checkPassword(String value) {
+        return PWD.matcher(value).matches();
+    }
+}

+ 5 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyLoginController.java

@@ -3,6 +3,7 @@ package com.fs.company.controller.company;
 import com.fs.common.constant.Constants;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.redis.RedisCache;
+import com.fs.common.utils.PatternUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.company.domain.CompanyMenu;
 import com.fs.company.domain.CompanyUser;
@@ -52,6 +53,10 @@ public class CompanyLoginController
     @PostMapping("/login")
     public AjaxResult login(@RequestBody LoginBody loginBody)
     {
+        if (!PatternUtils.checkPassword(loginBody.getPassword())) {
+            return AjaxResult.error("密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
+        }
+
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),

+ 6 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyProfileController.java

@@ -5,6 +5,7 @@ import com.fs.common.config.FSConfig;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.PatternUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.file.FileUploadUtils;
 import com.fs.company.domain.CompanyUser;
@@ -88,6 +89,11 @@ public class CompanyProfileController extends BaseController
         {
             return AjaxResult.error("修改密码失败,旧密码错误");
         }
+
+        if (!PatternUtils.checkPassword(newPassword)) {
+            return AjaxResult.error("新密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
+        }
+
         if (SecurityUtils.matchesPassword(newPassword, password))
         {
             return AjaxResult.error("新密码不能与旧密码相同");

+ 8 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyUserController.java

@@ -7,6 +7,7 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.PatternUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
@@ -154,6 +155,10 @@ public class CompanyUserController extends BaseController
     @PostMapping
     public AjaxResult add(@Validated @RequestBody CompanyUser user)
     {
+        if (!PatternUtils.checkPassword(user.getPassword())) {
+            return AjaxResult.error("密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
+        }
+
         //判断用户数量是否已达到上线
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         Integer count=companyUserService.selectCompanyUserCountByCompanyId(loginUser.getCompany().getCompanyId());
@@ -227,6 +232,9 @@ public class CompanyUserController extends BaseController
     @PutMapping("/resetPwd")
     public AjaxResult resetPwd(@RequestBody CompanyUser user)
     {
+        if (!PatternUtils.checkPassword(user.getPassword())) {
+            return AjaxResult.error("密码格式不正确,需包含字母、数字和特殊字符,长度为 8-20 位");
+        }
         return toAjax(companyUserService.resetUserPwdByUserId(user.getUserId(), SecurityUtils.encryptPassword(user.getPassword())));
     }