/*
* 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();
}
}