/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.rbac.action.user; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; import java.util.Date; 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 com.rbac.common.BaseAction; import com.rbac.entity.SysAccount; import com.rbac.form.user.PwdModifyForm; import com.rbac.service.AccountService; import com.rbac.util.CommonUtils; import com.rbac.util.PasswordHash; /** * MyEclipse Struts * Creation date: 04-30-2014 * * XDoclet definition: * @struts.action path="/pwdModify" name="pwdModifyForm" input="/user/pwdModify.jsp" scope="request" validate="true" */ public class PwdModifyAction extends BaseAction { /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { PwdModifyForm pwdModifyForm = (PwdModifyForm) form; AccountService accountService = (AccountService) super.getBean("accountService"); if(CommonUtils.isNotBlank(pwdModifyForm.getSubmit())){ if(CommonUtils.isNotBlank(pwdModifyForm.getId())){ Long accountId = CommonUtils.parseLong(pwdModifyForm.getId()); SysAccount account = accountService.getAccountById(accountId); account.setModifierId(this.getCurrentAccountId(request)); account.setModifyTime(new Date()); if(CommonUtils.isNotBlank(pwdModifyForm.getPassword())){ try { String pwdHash = PasswordHash.createHash(pwdModifyForm.getPassword().trim()); if(CommonUtils.isNotBlank(pwdHash)){ String[] pwd = pwdHash.split(":"); if(pwd!=null && pwd.length==3){ account.setPassword(pwd[2]); account.setSalt(pwd[1]); } } } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (InvalidKeySpecException e) { e.printStackTrace(); } } accountService.saveOrUpdateAccount(account); request.setAttribute("msg", "密码修改成功"); } } return mapping.getInputForward(); } }