whyclxw
2024-10-25 5e6c5bc0bbc6a7b8ce3050d689fd40d29cbf67fe
不登陆修改密码
3个文件已修改
38 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/UserController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/filter/AccessFilter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/UserService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/UserController.java
@@ -180,6 +180,12 @@
        return userService.updatePasswordByRSA(userInf,password);
    }
    @GetMapping("updatePasswordByValidity")
    @ApiOperation(value = "修改密码-密码失效")
    public Response updatePasswordByValidity(@RequestParam String uname,@RequestParam String oldPwd,@RequestParam String newPwd){
        return userService.updatePasswordByValidity(uname,oldPwd,newPwd);
    }
    /**
     * 1.首次登录,请先修改初始化口令
     * 2.超过3个月没有修改口令,请修改口令后重新登录
src/main/java/com/whyc/filter/AccessFilter.java
@@ -137,7 +137,7 @@
                                    || requestURI.contains("login/login")
                                    || requestURI.contains("login/logout")
                                    || requestURI.contains("user/updatePassword2")
                                    || requestURI.contains("user/updatePasswordByRSA")
                                    || requestURI.contains("user/updatePasswordByValidity")
                                    || requestURI.contains("pageParam/findByCategoryId")
                                    || requestURI.contains("pageParam/allList")
                                    || requestURI.contains("license")
src/main/java/com/whyc/service/UserService.java
@@ -18,6 +18,7 @@
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
@@ -321,6 +322,35 @@
            return new Response().set(0,false,"新密码修改失败");
        }
    }
    //密码失效修改密码
    public Response updatePasswordByValidity(String uname, String oldPwd, String newPwd){
        //验证旧密码是否正确
        QueryWrapper<UserInf> queryWrapper = Wrappers.query();
        queryWrapper.select("uid","upassword").eq("uName",uname).last(" limit 1");
        UserInf user=userMapper.selectOne(queryWrapper);
        String passwordDB =user.getUpassword();
        if(!RSAUtil.decrypt(passwordDB,RSAUtil.getPrivateKey()).equals(oldPwd)){
            return new Response().set(1,false,"旧密码输入错误");
        }
        if(!ActionUtil.filterPwd(newPwd)){
            return new Response().set(0,false,"新密码验证不通过(最少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符)");
        }
        String[] dataArr = RSAUtil.decryptFrontP(newPwd, RSAUtil.fontSeparator);
        newPwd = dataArr[0];
        String passwordMD5 = dataArr[1];
        if(!ActionUtil.EncryptionMD5(newPwd).equals(passwordMD5)){
            throw new InvalidParameterException("参数校验失败");
        }
        String pwd = RSAUtil.encrypt(newPwd,RSAUtil.getPublicKey());
        user.setUpassword(pwd);
        user.setUSnId(pwd);
        user.setPasswordUpdateTime(new Date());
        if (userMapper.updateById(user)>0){
            return new Response().set(1,true,"新密码修改成功");
        }else {
            return new Response().set(0,false,"新密码修改失败");
        }
    }
    public Response updatePassword2(UserInf userInf, String passwordOld, String passwordNew) {