忘记密码功能
2016-06-30 13:10
218 查看
/**
* 调往忘记密码页面
* @author xushuanglu
* @date 2016年6月21日
*/
@RequestMapping(value ="/toFindPass")
public String toFindPass() {
return display("forget");
}
/**
* 忘记密码下一步
* @param phone 手机号
* @param code 验证码
* @param phonecode 手机短信验证码
* @author xushuanglu
* @date 2016年6月21日
*/
@RequestMapping(value ="/toValidate")
public String toValidate(ModelMapmodel, Stringphone, Stringcode,
String phonecode,
HttpServletRequest
request,HttpServletResponse response) {
// 后台验证 通过手机号查询用户信息
HjsUsersCustomer hjsUsersCustomer =usersCustomerService.getByPhone(phone);
String result = backgroundValidate(phone,code,phonecode,hjsUsersCustomer);
if (result !=null) {
error(result,request,response);
return null;
}
getSession().setAttribute("resetUserId",hjsUsersCustomer.getId());
model.addAttribute("hjsUsersCustomer",hjsUsersCustomer);// 用户信息
return display("resetPassWord");
}
/**
* 后台验证
* @param phone 手机号
* @param code 验证码
* @param phonecode 手机短信验证码
* @author xushuanglu
* @date 2016年6月21日
*/
private String backgroundValidate(Stringphone, Stringcode, Stringphonecode,
HjsUsersCustomer
hjsUsersCustomer) {
String result =null;
// 判断用户信息是否存在
if (hjsUsersCustomer ==null) {
return result ="用户信息不存在或者用户已经停用,请与客服联系";
}
// 手机验证码
if(getSession().getAttribute("passCode") !=null){
String codeString = getSession().getAttribute("passCode").toString();
Date codeTime = (Date) getSession().getAttribute("passTime");
String phoneString = getSession().getAttribute("passPhone").toString();
long diff = (new Date().getTime() -codeTime.getTime())
/ (1000 * 60);
if (!codeString.equals(phonecode) ||diff > 30
|| !phoneString.equals(hjsUsersCustomer.getPhone())) {
return result ="手机校验码不正确";
} else {
getSession().removeAttribute("passCode");
}
}
// 验证码
if (ValidateUtils.isStringEmpty(code)) {
return result ="请输入验证码";
}
if(!getSession().getAttribute(Const.SESSION_SECURITY_CODE).toString().equalsIgnoreCase(code))
{
return result ="验证码不正确";
}
return result;
}
/**
* 修改密码
* @param newPass 新密码
* @author xushuanglu
* @date 2016年6月21日
*/
@RequestMapping(value ="/resetPass")
public String editPass(ModelMapmodel, StringnewPass,HttpServletRequestrequest,
HttpServletResponse
response) {
//后台验证
if (ValidateUtils.isStringEmpty(newPass)) {
error("请填写新密码",request,response);
return null;
}
if (request.getSession().getAttribute("resetUserId") ==null)
{
error("重设密码失败,请稍后再试",request,response);
return null;
}
Integer userId = (Integer)getSession().getAttribute("resetUserId");
getSession().setAttribute("resetUserId",null);
HjsUsersCustomer usersCustomer =usersCustomerService.getById(userId);
newPass =
new SimpleHash("SHA-1",usersCustomer.getUsername(),newPass).toString();//密码加密
usersCustomer.setPassword(newPass);
//更新密码
usersCustomerService.update(usersCustomer);
return "redirect:login";
}
相关文章推荐
- switch端口 ;;;
- 1-4数据库系统的结构
- Linux下Java线程详细监控和其dump的分析使用—-分析Java性能瓶颈
- 121. Best Time to Buy and Sell Stock
- 1-3数据模型
- CentOS6.3升级openssl和openssh
- hdu 4536 XCOM Enemy Unknown(搜索)
- nagios邮件告警设置方法成功版本
- Xcode7 安装VVDocumenter-Xcode步骤
- Python学习笔记
- asp.net MD5 加密
- [第三方工具]利用第三方工具xPort导出Excel文件
- 1-2数据库管理技术
- 『零行代码』解决键盘遮挡问题(iOS)
- 离婚后感言
- 执行SVN cleanup 反复失败
- hdu 4544 湫湫系列故事——消灭兔子(贪心,优先队列)
- 1-1数据库系统相关概念
- server2008服务器IIS7 +PHP5.3出现500错误的排错方法
- swiper的基础教程(十二)