/* ==================================================================
* 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()));
}
}
}
}