package com.norteksoft.acs.web.syssetting; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.enumeration.LoginFailSetType; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.entity.sysSetting.SecuritySetting; import com.norteksoft.acs.service.syssetting.SecuritySetManager; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.util.ContextUtils; /** * * @author chenchenhu * */ @Namespace("/syssetting") @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "/syssetting/security-set.action", type = "redirect") }) public class SecuritySetAction extends CRUDActionSupport<SecuritySetting> { private static final long serialVersionUID = 4622265559442003480L; private SecuritySetManager securitySetManager; public String name; private SecuritySetting entity; private Long id; private String passWordLenth; private String [] prems; private String passRule; private String mse; private String failType="VALIDATE_CODE"; private Integer lockTime; private String logRemainTime;//审计信息保留时间 private String logRemainTimeRemark;//审计信息保留时间备注 @Override public String delete() throws Exception { return null; } @Action("list") public String toList() throws Exception{ return SUCCESS; } @Override @Action("security-set") public String list() throws Exception { List<SecuritySetting> list = securitySetManager.getSecuritySetList(); prems = new String[11]; prems[0]="3";//登陆次数默认设为3次 for (SecuritySetting obj : list) { if(obj.getName().equals("login-security")){ prems[0]=obj.getValue(); prems[2]=obj.getRemarks(); failType=obj.getFailSetType().toString(); lockTime=obj.getLockedTime(); } if(obj.getName().equals("loginTimeouts")){ prems[3]=obj.getValue(); prems[4]=obj.getRemarks(); } if(obj.getName().equals("password-over-notice")){ prems[5]=obj.getValue(); prems[6]=obj.getRemarks(); } if(obj.getName().equals("admin-password-overdue")){ prems[7]=obj.getValue(); prems[8]=obj.getRemarks(); } if(obj.getName().equals("user-password-overdue")){ prems[9]=obj.getValue(); prems[10]=obj.getRemarks(); } if(obj.getName().equals("password-complexity")){ passRule=obj.getValue(); passWordLenth = securitySetManager.getPassWordLength(obj); } if(obj.getName().equals("log-set")){ logRemainTime=obj.getValue(); logRemainTimeRemark=obj.getRemarks(); } } ApiFactory.getBussinessLogService().log("参数设置", "查看参数设置",ContextUtils.getSystemId("acs")); return SUCCESS; } @Override protected void prepareModel() throws Exception { //entity = securitySetManager.getSecuritySetByName(name,null); } @Override public String save() throws Exception { List<SecuritySetting> entitys = new ArrayList<SecuritySetting>(); if(StringUtils.isNotEmpty(prems[0])||StringUtils.isNotEmpty(failType)||lockTime!=null){ entity = securitySetManager.getSecuritySetByName("login-security",null); entity.setValue(prems[0]); entity.setRemarks(prems[1]); if("VALIDATE_CODE".equals(failType)){ entity.setFailSetType(LoginFailSetType.VALIDATE_CODE); }else if("LOCK_USER".equals(failType)){ entity.setFailSetType(LoginFailSetType.LOCK_USER); entity.setLockedTime(lockTime); } entitys.add(entity); } if(StringUtils.isNotEmpty(prems[2])){ entity = securitySetManager.getSecuritySetByName("loginTimeouts",null); entity.setValue(prems[2]); entity.setRemarks(prems[3]); entitys.add(entity); } if(StringUtils.isNotEmpty(prems[4])){ entity = securitySetManager.getSecuritySetByName("password-over-notice",null); entity.setValue(prems[4]); entity.setRemarks(prems[5]); entitys.add(entity); } if(StringUtils.isNotEmpty(prems[6])){ entity = securitySetManager.getSecuritySetByName("admin-password-overdue",null); entity.setValue(prems[6]); entity.setRemarks(prems[7]); entitys.add(entity); } if(StringUtils.isNotEmpty(prems[8])){ entity = securitySetManager.getSecuritySetByName("user-password-overdue",null); entity.setValue(prems[8]); entity.setRemarks(prems[9]); entitys.add(entity); } if(StringUtils.isNotEmpty(passRule)){ entity = securitySetManager.getSecuritySetByName("password-complexity",null); entity.setValue(passRule); entitys.add(entity); } if(StringUtils.isNotEmpty(logRemainTime)){ entity = securitySetManager.getSecuritySetByName("log-set",null); entity.setValue(logRemainTime); entity.setRemarks(logRemainTimeRemark); entitys.add(entity); } securitySetManager.save(entitys); mse ="ok"; ApiFactory.getBussinessLogService().log("参数设置", "提交参数设置",ContextUtils.getSystemId("acs")); return list(); } public void prepareModifyLoginTimeouts() throws Exception { prepareModel(); } /** * 系统登录超时设置 * * @return * @throws Exception */ public String modifyLoginTimeouts() throws Exception { securitySetManager.writeLog("系统登录超时设置"); return "logintimeouts"; } public void prepareSaveLoginTimeouts() throws Exception { prepareModel(); } /** * 登陆安全设置方法 * * @return * @throws Exception */ public void prepareModifyLonginSecuritys() throws Exception { prepareModel(); } public String modifyLonginSecuritys() throws Exception { securitySetManager.writeLog("登陆安全设置"); return "login-security"; } /** * 管理员密码过期设置 * * @return * @throws Exception */ public void prepareModifyAdminPasswordOverdue() throws Exception { prepareModel(); } public String modifyAdminPasswordOverdue() throws Exception { securitySetManager.writeLog("管理员密码过期设置"); return "admin-password-overdue"; } /** * 一般用户密码过期设置 * * @return * @throws Exception */ public void prepareModifyPasswordOverdue() throws Exception { prepareModel(); } public String modifyPasswordOverdue() throws Exception { securitySetManager.writeLog("一般用户密码过期设置"); return "user-password-overdue"; } /** * 密码过期通知设置 * * @return * @throws ExceptionsetPasswordComplexity */ public void prepareModifyPasswordOverNotice() throws Exception { prepareModel(); } public String modifyPasswordOverNotice() throws Exception { securitySetManager.writeLog("密码过期通知设置"); return "password-over-notice"; } /** * 密码复杂度设置 * * @return * @throws Exception */ public void prepareModifyPasswordComplexity() throws Exception { entity = securitySetManager.getSecuritySetByName(name,"(?=(.*\\d){1,}),0"); } public String modifyPasswordComplexity() throws Exception { passWordLenth = securitySetManager.getPassWordLength(entity); securitySetManager.writeLog("密码复杂度设置"); return "password-complexity"; } public SecuritySetting getModel() { return entity; } @Required public void setSecuritySetManager(SecuritySetManager securitySetManager) { this.securitySetManager = securitySetManager; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassWordLenth() { return passWordLenth; } public void setPassWordLenth(String passWordLenth) { this.passWordLenth = passWordLenth; } public String [] getPrems() { return prems; } public void setPrems(String [] prems) { this.prems = prems; } public String getPassRule() { return passRule; } public void setPassRule(String passRule) { this.passRule = passRule; } public String getMse() { return mse; } public void setMse(String mse) { this.mse = mse; } public String getFailType() { return failType; } public void setFailType(String failType) { this.failType = failType; } public Integer getLockTime() { return lockTime; } public void setLockTime(Integer lockTime) { this.lockTime = lockTime; } public String getLogRemainTime() { return logRemainTime; } public void setLogRemainTime(String logRemainTime) { this.logRemainTime = logRemainTime; } public String getLogRemainTimeRemark() { return logRemainTimeRemark; } public void setLogRemainTimeRemark(String logRemainTimeRemark) { this.logRemainTimeRemark = logRemainTimeRemark; } }