signupaction.java

来自「this is for appfuse1.8 source using stru」· Java 代码 · 共 137 行

JAVA
137
字号
package org.appfuse.webapp.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;import org.apache.struts.action.ActionMessages;import org.apache.struts.util.MessageResources;import org.appfuse.Constants;import org.appfuse.model.User;import org.appfuse.service.MailEngine;import org.appfuse.service.RoleManager;import org.appfuse.service.UserExistsException;import org.appfuse.service.UserManager;import org.appfuse.util.StringUtil;import org.appfuse.webapp.form.UserForm;import org.appfuse.webapp.util.RequestUtil;import org.springframework.mail.SimpleMailMessage;/** * Action class to allow users to self-register. * * <p/> * <a href="SignupAction.java.html"><i>View Source</i></a> * </p> * * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a> *  * @struts.action name="userForm" path="/signup" scope="request" *  validate="false" input="failure" *  * @struts.action-forward name="failure" path="/WEB-INF/pages/signup.jsp" * @struts.action-forward name="success" path="/mainMenu.html" redirect="true" */public final class SignupAction extends BaseAction {    public ActionForward execute(ActionMapping mapping, ActionForm form,                                 HttpServletRequest request,                                 HttpServletResponse response)    throws Exception {                // if it's an HTTP GET, simply forward to jsp        if (request.getMethod().equals("GET")) {            return mapping.findForward("failure");        // user clicked cancel button        } else if (isCancelled(request)) {            return new ActionForward("/");        // run validation        } else {            // run validation rules on this form            ActionMessages errors = form.validate(mapping, request);            if (!errors.isEmpty()) {                saveErrors(request, errors);                return mapping.findForward("failure");            }        }        if (log.isDebugEnabled()) {            log.debug("registering user...");        }        ActionMessages errors = new ActionMessages();        UserForm userForm = (UserForm) form;        User user = (User) convert(form);        String algorithm =                (String) getConfiguration().get(Constants.ENC_ALGORITHM);        // Set the default user role on this new user        RoleManager roleMgr = (RoleManager) getBean("roleManager");        user.addRole(roleMgr.getRole(Constants.USER_ROLE));        try {            if (algorithm == null) { // should only happen for test case                log.debug("assuming testcase, setting algorigthm to 'SHA'");                algorithm = "SHA";            }            user.setPassword(StringUtil.encodePassword(user.getPassword(),                    algorithm));            user.setEnabled(Boolean.TRUE);            UserManager mgr = (UserManager) getBean("userManager");            mgr.saveUser(user);            // Set cookies for auto-magical login ;-)            String loginCookie = mgr.createLoginCookie(user.getUsername());            RequestUtil.setCookie(response, Constants.LOGIN_COOKIE,                    loginCookie, request.getContextPath());        } catch (UserExistsException e) {            log.warn(e.getMessage());            errors.add(ActionMessages.GLOBAL_MESSAGE,                    new ActionMessage("errors.existing.user",                            userForm.getUsername(),                            userForm.getEmail()));            saveErrors(request, errors);            return mapping.getInputForward();        }        ActionMessages messages = new ActionMessages();        MessageResources resources = getResources(request);        messages.add(ActionMessages.GLOBAL_MESSAGE,                new ActionMessage("user.registered", userForm.getUsername()));        saveMessages(request.getSession(), messages);        request.getSession().setAttribute(Constants.REGISTERED, Boolean.TRUE);        // Send user an e-mail        if (log.isDebugEnabled()) {            log.debug("Sending user '" + userForm.getUsername()                    + "' an account information e-mail");        }        SimpleMailMessage message = (SimpleMailMessage) getBean("mailMessage");        message.setTo(user.getFullName() + "<" + user.getEmail() + ">");                StringBuffer msg = new StringBuffer();        msg.append(resources.getMessage("signup.email.message"));        msg.append("\n\n" + resources.getMessage("userForm.username"));        msg.append(": " + userForm.getUsername() + "\n");        msg.append(resources.getMessage("userForm.password") + ": ");        msg.append(userForm.getPassword());        msg.append("\n\nLogin at: " + RequestUtil.getAppURL(request));        message.setText(msg.toString());                message.setSubject(resources.getMessage("signup.email.subject"));                MailEngine engine = (MailEngine) getBean("mailEngine");        engine.send(message);        return mapping.findForward("success");    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?