KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > webapp > action > PasswordHintAction


1 package org.appfuse.webapp.action;
2
3 import javax.servlet.http.HttpServletRequest JavaDoc;
4 import javax.servlet.http.HttpServletResponse JavaDoc;
5
6 import org.apache.struts.action.ActionForm;
7 import org.apache.struts.action.ActionForward;
8 import org.apache.struts.action.ActionMapping;
9 import org.apache.struts.action.ActionMessage;
10 import org.apache.struts.action.ActionMessages;
11 import org.apache.struts.util.MessageResources;
12 import org.appfuse.model.User;
13 import org.appfuse.service.MailEngine;
14 import org.appfuse.service.UserManager;
15 import org.appfuse.webapp.util.RequestUtil;
16 import org.springframework.mail.SimpleMailMessage;
17
18
19 /**
20  * Action class to send password hints to registered users.
21  *
22  * <p>
23  * <a HREF="PasswordHintAction.java.htm"><i>View Source</i></a>
24  * </p>
25  *
26  * @author <a HREF="mailto:matt@raibledesigns.com">Matt Raible</a>
27  *
28  * @struts.action path="/passwordHint" validate="false"
29  * @struts.action-forward name="previousPage" path="/"
30  */

31 public final class PasswordHintAction extends BaseAction {
32
33     public ActionForward execute(ActionMapping mapping, ActionForm form,
34                                  HttpServletRequest JavaDoc request,
35                                  HttpServletResponse JavaDoc response)
36     throws Exception JavaDoc {
37         MessageResources resources = getResources(request);
38         ActionMessages errors = new ActionMessages();
39         String JavaDoc username = request.getParameter("username");
40
41         // ensure that the username has been sent
42
if (username == null) {
43             log.warn("Username not specified, notifying user that it's a required field.");
44
45             errors.add(ActionMessages.GLOBAL_MESSAGE,
46                        new ActionMessage("errors.required",
47                                          resources.getMessage("userForm.username")));
48             saveErrors(request, errors);
49             return mapping.findForward("previousPage");
50         }
51
52         if (log.isDebugEnabled()) {
53             log.debug("Processing Password Hint...");
54         }
55
56         ActionMessages messages = new ActionMessages();
57
58         // look up the user's information
59
try {
60             UserManager userMgr = (UserManager) getBean("userManager");
61             User user = userMgr.getUserByUsername(username);
62
63             StringBuffer JavaDoc msg = new StringBuffer JavaDoc();
64             msg.append("Your password hint is: " + user.getPasswordHint());
65             msg.append("\n\nLogin at: " + RequestUtil.getAppURL(request));
66
67             SimpleMailMessage message = (SimpleMailMessage) getBean("mailMessage");
68             message.setTo(user.getEmail());
69             String JavaDoc subject = '[' + resources.getMessage("webapp.name") + "] " +
70                              resources.getMessage("userForm.passwordHint");
71             message.setSubject(subject);
72             message.setText(msg.toString());
73             
74             MailEngine mailEngine = (MailEngine) getBean("mailEngine");
75             mailEngine.send(message);
76             
77             messages.add(ActionMessages.GLOBAL_MESSAGE,
78                          new ActionMessage("login.passwordHint.sent", username,
79                                            user.getEmail()));
80             saveMessages(request.getSession(), messages);
81         } catch (Exception JavaDoc e) {
82             e.printStackTrace();
83             // If exception is expected do not rethrow
84
errors.add(ActionMessages.GLOBAL_MESSAGE,
85                        new ActionMessage("login.passwordHint.error", username));
86             saveErrors(request, errors);
87         }
88
89         return mapping.findForward("previousPage");
90     }
91 }
92
Popular Tags