/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.um.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.jinhe.tss.core.Global; import com.jinhe.tss.core.util.EasyUtils; import com.jinhe.tss.core.web.dispaly.ErrorMessageEncoder; import com.jinhe.tss.core.web.dispaly.XmlPrintWriter; import com.jinhe.tss.core.web.dispaly.xmlhttp.XmlHttpEncoder; import com.jinhe.tss.um.entity.User; import com.jinhe.tss.um.service.IUserService; /** * <p> GetPasswordServlet.java </p> * <p> * 密码忘记时根据密码提示问题或答案重新设置密码。成功的话则将【用户ID】返回前台。 * </p> */ public class GetPasswordServlet extends HttpServlet { private static final long serialVersionUID = -740569423483772472L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String loginName = request.getParameter("loginName"); String passwordAnswer = request.getParameter("passwordAnswer"); String passwordQuestion = request.getParameter("passwordQuestion"); IUserService service = (IUserService) Global.getContext().getBean("UserService"); User user = service.getUserByLoginName(loginName); response.setContentType("text/html;charset=GBK"); if ( user == null ) { ErrorMessageEncoder encoder = new ErrorMessageEncoder("用户【" + loginName + "】不存在"); encoder.print(new XmlPrintWriter(response.getWriter())); } else { String userPasswordAnswer = user.getPasswordAnswer(); String userPasswordQuestion = user.getPasswordQuestion(); if ( EasyUtils.isNullOrEmpty(userPasswordQuestion) || EasyUtils.isNullOrEmpty(userPasswordAnswer)) { ErrorMessageEncoder encoder = new ErrorMessageEncoder("您没有设置密码保护,无法通过本方式找回密码。"); encoder.print(new XmlPrintWriter(response.getWriter())); } else if (passwordAnswer.equals(userPasswordAnswer) && passwordQuestion.equals(userPasswordQuestion)) { XmlHttpEncoder encoder = new XmlHttpEncoder(); encoder.put("UserId", user.getId()); encoder.print(new XmlPrintWriter(response.getWriter())); } else { ErrorMessageEncoder encoder = new ErrorMessageEncoder("密码提示问题或答案不正确"); encoder.print(new XmlPrintWriter(response.getWriter())); } } } }