signupcontroller.java

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

JAVA
107
字号
package org.appfuse.webapp.action;import java.util.Locale;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.appfuse.Constants;import org.appfuse.model.User;import org.appfuse.service.RoleManager;import org.appfuse.service.UserExistsException;import org.appfuse.util.StringUtil;import org.appfuse.webapp.util.RequestUtil;import org.springframework.validation.BindException;import org.springframework.web.servlet.ModelAndView;/** * Controller to signup new users. * * <p> * <a href="SignupController.java.html"><i>View Source</i></a> * </p> * * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a> */public class SignupController extends BaseFormController {    private RoleManager roleManager;    /**     * @param roleManager The roleManager to set.     */    public void setRoleManager(RoleManager roleManager) {        this.roleManager = roleManager;    }        public ModelAndView onSubmit(HttpServletRequest request,                                 HttpServletResponse response, Object command,                                 BindException errors)    throws Exception {        if (log.isDebugEnabled()) {            log.debug("entering 'onSubmit' method...");        }        User user = (User) command;        Locale locale = request.getLocale();        String algorithm =        	(String) getConfiguration().get(Constants.ENC_ALGORITHM);        if (algorithm == null) { // should only happen for test case            if (log.isDebugEnabled()) {                log.debug("assuming testcase, setting algorithm to 'SHA'");            }            algorithm = "SHA";        }                user.setPassword(StringUtil.encodePassword(user.getPassword(), algorithm));        user.setEnabled(Boolean.TRUE);                // Set the default user role on this new user        user.addRole(roleManager.getRole(Constants.USER_ROLE));        try {            this.getUserManager().saveUser(user);        } catch (UserExistsException e) {            log.warn(e.getMessage());            errors.rejectValue("username", "errors.existing.user",                               new Object[] {                                   user.getUsername(), user.getEmail()                               }, "duplicate user");            // redisplay the unencrypted passwords            user.setPassword(user.getConfirmPassword());            return showForm(request, response, errors);        }        // Set cookies for auto-magical login ;-)        String loginCookie = this.getUserManager().createLoginCookie(user.getUsername());        RequestUtil.setCookie(response, Constants.LOGIN_COOKIE, loginCookie,                              request.getContextPath());        saveMessage(request, getText("user.registered", user.getUsername(), locale));        request.getSession().setAttribute(Constants.REGISTERED, Boolean.TRUE);        // Send user an e-mail        if (log.isDebugEnabled()) {            log.debug("Sending user '" + user.getUsername()                    + "' an account information e-mail");        }        // Send an account information e-mail        message.setSubject(getText("signup.email.subject", locale));        sendUserMessage(user, getText("signup.email.message", locale),                         RequestUtil.getAppURL(request));                return new ModelAndView(getSuccessView());    }    protected Object formBackingObject(HttpServletRequest request)    throws Exception {        return new User();    }}

⌨️ 快捷键说明

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