前台:
<title>modify approver Password</title> <script type="text/javascript"> $(document).ready(function(){ var oldPass = $("#oldPassword"); var pass = $("#password"); var rePass = $("#rePassword"); $("#content").hide("slow"); //检查要提交的修改密码表单 $("#passForm").submit(function() { //flag用于判断是否提交表单 var flag = false; if(oldPass.val() == '') { alert("请输入您的原始密码!"); oldPass[0].focus(); return false; }else if(rePass.val() != pass.val()){ $("#content").show("slow"); rePass[0].focus(); return false; }else if(rePass.val() == '' || pass.val() == ''){ alert("请输入您的新密码!"); return false; }else{ $.ajax({ type : 'GET', contentType : 'application/json', url : '${ctx}/approverPassword/checkPassword.do', data: 'oldPass=' + oldPass.val(), dataType : 'text', //同步 async : false, success : function(data) { if("false" == data) { alert("原始密码输入错误!"); oldPass.val(''); oldPass[0].focus(); flag = false; }else if("true" == data) { flag = true; } }, error : function() { alert("修改密码错误,请重新输入"); flag = false; } }); } /* if(flag) { alert("密码修改成功,请您重新登录!"); } */ return flag; }); }); </script> </head> <body> modify approver password.<br/> <form action="${ctx}/approverPassword/modifyUserPassword.do" id="passForm" name="passForm" method="post"> <table> <tr><td><input type="hidden" id="userId" name="userId" value="${user.id }"> </td></tr> <tr> <td>原始密码:</td> <td><input type="text" id="oldPassword" name="oldPassword" maxlength="20"/> </td> </tr> <tr> <td>新密码:</td> <td><input type="password" id="password" name="password" maxlength="20"/></td> </tr> <tr> <td>再次输入新密码:</td> <td> <input type="password" id="rePassword" name="rePassword" maxlength="20" /> <span id="content" style="font-size: 12px; color:red;">两次输入的密码不一样</span> </td> </tr> <tr> <td><input type="submit" id="submit" name="submit" value="submit"/></td> <td><input type="button" id="cancel" name="cancel" value="cancel"/></td> </tr> </table> </form> </body>
后台:
/** * check User password * @param request * @param response * @return ModelAndView */ @RequestMapping(value="/userPassword/checkPassword", method={RequestMethod.GET, RequestMethod.POST}) @ResponseBody public String checkPassword(@RequestParam("oldPass") String oldPass) { String flag1 = "false"; //取得当前用户的密码 long id = SecurityUtil.getUserSession().getId(); User user = userService.findById(id); String password = user.getPassword(); //从界面接收的旧密码 String oldPassword = Md5.createMD5Password(oldPass); //两个密码进行比较 if(oldPassword.equals(password)) { flag1 = "true"; }else{ flag1 = "false"; } return flag1; }
/** * modify user password * @return ModelAndView */ @RequestMapping(value="/userPassword/modifyUserPassword", method={RequestMethod.GET, RequestMethod.POST}) public ModelAndView modifyUserPassword(HttpServletRequest request, HttpServletResponse response) { ModelAndView mv = new ModelAndView("redirect:/login/goIndexPage.do"); ModelAndView mv1 = new ModelAndView("passwordError"); //获取参数 String oldPass = request.getParameter("oldPassword"); long id = Long.valueOf(request.getParameter("userId")); String password = request.getParameter("rePassword"); //对String类型的密码进行Md5加密 String Md5Password = Md5.createMD5Password(password); //得到要修改的实体 User user = userService.findById(id); //根据user实体user1在表user_access_role表中查找一个UserAccessRole实体 1(user):1(accessRole) List<UserAccessRole> list = this.userAccessRoleService.getAccessRoleId("user", user); //从list<UserAccessRole>取出实体accessRole AccessRole accessRole = list.get(0).getAccessRole(); //得到实体accessRole的角色名name id String roleName = accessRole.getName(); long roleId = accessRole.getId(); user.setPassword(Md5Password); //判断权限 if(roleId == userAccessRoleService.USER_ACCESS_ROLE_ID && "true".equals(this.checkPassword(oldPass))) { //1.修改pccw_iaas表中的userPassword userService.merge(user); //2.修改cloud表中的userPassword cloudStackUserService.modifyCloudStackUserPassword(user.getCloudUserId(), user.getUserName(), Md5Password); return mv; }else { return mv1; } }