passwordhintcontroller.java
来自「Java的框架」· Java 代码 · 共 109 行
JAVA
109 行
package mcaps.core.user.webapp.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mcap.core.base.service.MailEngine;
import mcap.core.base.webapp.util.RequestUtil;
import mcap.core.user.model.User;
import mcap.core.user.service.UserManager;
import org.springframework.context.MessageSource;
import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.view.RedirectView;
/**
* Taken from AppFuse
* Simple class to retrieve and send a password hint to users.
*
*/
public class PasswordHintController implements Controller {
private UserManager mgr = null;
private MessageSource messageSource = null;
protected MailEngine mailEngine = null;
protected SimpleMailMessage message = null;
public void setUserManager(UserManager userManager) {
this.mgr = userManager;
}
public void setMessageSource(MessageSource messageSource) {
this.messageSource = messageSource;
}
public void setMailEngine(MailEngine mailEngine) {
this.mailEngine = mailEngine;
}
public void setMessage(SimpleMailMessage message) {
this.message = message;
}
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
String username = request.getParameter("username");
MessageSourceAccessor text = new MessageSourceAccessor(messageSource, request.getLocale());
// ensure that the username has been sent
if (username == null) {
request.setAttribute ("error", text.getMessage("errors.required",
new Object[] {text.getMessage("user.username")}));
return new ModelAndView("login");
}
// look up the user's information
try {
User user = (User) mgr.getUser (username);
StringBuffer msg = new StringBuffer();
msg.append ("Your password hint is: " + user.getPasswordHint());
msg.append ("\n\nLogin at: " + RequestUtil.getAppURL(request));
message.setTo(user.getEmail());
String subject = text.getMessage("webapp.prefix") +
text.getMessage("user.passwordHint");
message.setSubject(subject);
message.setText(msg.toString());
mailEngine.send(message);
saveMessage(request, text.getMessage("login.passwordHint.sent",
new Object[] { username, user.getEmail() }));
}
catch (Exception e) {
saveError(request, text.getMessage("login.passwordHint.error",
new Object[] { username }));
}
return new ModelAndView (new RedirectView(request.getContextPath()));
}
public void saveError(HttpServletRequest request, String error) {
List errors = (List) request.getSession().getAttribute("errors");
if (errors == null) {
errors = new ArrayList();
}
errors.add(error);
request.getSession().setAttribute("errors", errors);
}
// this method is also in BaseForm Controller
public void saveMessage(HttpServletRequest request, String msg) {
List messages = (List) request.getSession().getAttribute("messages");
if (messages == null) {
messages = new ArrayList();
}
messages.add(msg);
request.getSession().setAttribute("messages", messages);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?