diff --git a/src/main/java/com/nis/domain/configuration/AreaIpCfg.java b/src/main/java/com/nis/domain/configuration/AreaIpCfg.java index 84bc8b004..635a45e66 100644 --- a/src/main/java/com/nis/domain/configuration/AreaIpCfg.java +++ b/src/main/java/com/nis/domain/configuration/AreaIpCfg.java @@ -8,6 +8,8 @@ */ package com.nis.domain.configuration; +import com.nis.util.Constants; + /** * @ClassName: AreaIpCfg.java * @Description: TODO @@ -54,6 +56,14 @@ public class AreaIpCfg extends BaseIpCfg { this.protocolId=0; this.isAreaEffective=0; this.areaEffectiveIds=null; + this.cfgType=Constants.AREA_REGION; + this.cfgRegionCode=1; + this.protocol=0; + this.portPattern=1; + this.srcPort="0"; + this.destPort="0"; + this.direction=0; + this.destIpAddress="0.0.0.0"; } /** diff --git a/src/main/java/com/nis/domain/maat/MaatCfg.java b/src/main/java/com/nis/domain/maat/MaatCfg.java index a5ae31ba8..184d5ac86 100644 --- a/src/main/java/com/nis/domain/maat/MaatCfg.java +++ b/src/main/java/com/nis/domain/maat/MaatCfg.java @@ -18,6 +18,7 @@ import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.NumBoundaryCfg; +import com.nis.util.DateUtils; /** * @ClassName: MaatCfg.java @@ -72,7 +73,7 @@ public class MaatCfg implements Serializable { @Expose private Integer fatherCfgId; @Expose - @SerializedName("opTime") + @SerializedName("auditTime") private Date auditTime; @Expose private List groupRelationList; @@ -84,6 +85,9 @@ public class MaatCfg implements Serializable { private List numRegionList; @Expose private List digestRegionList; + @Expose + @SerializedName("ipClientRangeList ") + private List areaIpRegionList; public static class GroupCfg{ @Expose @@ -93,7 +97,7 @@ public class MaatCfg implements Serializable { @Expose private Integer isValid; @Expose - private Date opTime; + private Date auditTime; public Integer getGroupId() { return groupId; } @@ -112,11 +116,11 @@ public class MaatCfg implements Serializable { public void setIsValid(Integer isValid) { this.isValid = isValid; } - public Date getOpTime() { - return opTime; + public Date getAuditTime() { + return auditTime; } - public void setOpTime(Date opTime) { - this.opTime = opTime; + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; } } @@ -142,7 +146,7 @@ public class MaatCfg implements Serializable { @Expose private Integer isValid; @Expose - private Date opTime; + private Date auditTime; public Integer getRegionId() { return regionId; } @@ -197,11 +201,11 @@ public class MaatCfg implements Serializable { public void setIsValid(Integer isValid) { this.isValid = isValid; } - public Date getOpTime() { - return opTime; + public Date getAuditTime() { + return auditTime; } - public void setOpTime(Date opTime) { - this.opTime = opTime; + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; } } @@ -214,22 +218,27 @@ public class MaatCfg implements Serializable { @SerializedName("tableName") private String cfgType; @Expose + @SerializedName("addrType") private Integer ipType; @Expose private String srcIp; @Expose + @SerializedName("maskSrcIp") private String srcIpMask ; @Expose private String srcPort ; @Expose + @SerializedName("maskSrcPort") private String srcPortMask ; @Expose private String dstIp ; @Expose + @SerializedName("maskDstIp") private String dstIpMask ; @Expose private String dstPort ; @Expose + @SerializedName("maskDstPort") private String dstPortMask ; @Expose private Integer direction ; @@ -238,7 +247,7 @@ public class MaatCfg implements Serializable { @Expose private Integer isValid; @Expose - private Date opTime; + private Date auditTime; public Integer getRegionId() { return regionId; } @@ -329,11 +338,11 @@ public class MaatCfg implements Serializable { public void setIsValid(Integer isValid) { this.isValid = isValid; } - public Date getOpTime() { - return opTime; + public Date getAuditTime() { + return auditTime; } - public void setOpTime(Date opTime) { - this.opTime = opTime; + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; } } public static class NumBoundaryCfg{ @@ -351,7 +360,7 @@ public class MaatCfg implements Serializable { @Expose private Integer isValid; @Expose - private Date opTime; + private Date auditTime; public Integer getRegionId() { return regionId; } @@ -388,11 +397,11 @@ public class MaatCfg implements Serializable { public void setIsValid(Integer isValid) { this.isValid = isValid; } - public Date getOpTime() { - return opTime; + public Date getAuditTime() { + return auditTime; } - public void setOpTime(Date opTime) { - this.opTime = opTime; + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; } }public static class DigestCfg{ @Expose @@ -411,7 +420,7 @@ public class MaatCfg implements Serializable { @Expose private Integer isValid; @Expose - private Date opTime; + private Date auditTime; public Integer getRegionId() { return regionId; } @@ -454,11 +463,11 @@ public class MaatCfg implements Serializable { public void setIsValid(Integer isValid) { this.isValid = isValid; } - public Date getOpTime() { - return opTime; + public Date getAuditTime() { + return auditTime; } - public void setOpTime(Date opTime) { - this.opTime = opTime; + public void setAuditTime(Date auditTime) { + this.auditTime = auditTime; } } public Integer getCompileId() { @@ -611,4 +620,20 @@ public class MaatCfg implements Serializable { public void setDigestRegionList(List digestRegionList) { this.digestRegionList = digestRegionList; } + public List getAreaIpRegionList() { + return areaIpRegionList; + } + public void setAreaIpRegionList(List areaIpRegionList) { + this.areaIpRegionList = areaIpRegionList; + } + public void initDefaultValue() { + this.doLog=2; + this.doBlackList=1; + this.configPercent=100; + this.configOption=1; + this.startTime=new Date(); + this.endTime=DateUtils.addYears(new Date(), 81); + this.fatherCfgId=0; + + } } diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index b838669df..a1a46159b 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -291,5 +291,6 @@ public final class Constants { public static final String HTTP_URL_REGION = Configurations.getStringProperty("http_url_region","http_url"); public static final String VOIP_IP_REGION = Configurations.getStringProperty("voip_ip","av_voip_ip"); public static final String VOIP_ACCOUNT_REGION = Configurations.getStringProperty("voip_account","av_voip_account"); + public static final String MAAT_VERSION = Configurations.getStringProperty("maat_version","1.0"); } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java index 3700bb67d..a4f3614ce 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java @@ -15,6 +15,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; import com.nis.domain.configuration.BaseIpCfg; @@ -24,8 +25,10 @@ import com.nis.domain.configuration.HttpReqHeadCfg; import com.nis.domain.configuration.HttpResHeadCfg; import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.IpPortCfg; +import com.nis.exceptions.MaatConvertException; import com.nis.util.Constants; import com.nis.web.controller.BaseController; +import com.nis.web.security.UserUtils; /** * 白名单 @@ -156,4 +159,31 @@ public class WebsiteController extends BaseController{ model.addAttribute("index", index); return "/cfg/website/httpSubList"; } + @RequestMapping(value = {"updateHttpCfgValid"}) + @RequiresPermissions(value={"website:http:config"}) + public String updateHttpCfgValid(Integer isAudit,Integer isValid,String ids,Integer functionId) { + websiteCfgService.updateHttpCfgValid(isAudit,isValid,ids); + return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+functionId; + } + @RequestMapping(value = {"auditHttpCfg"}) + @RequiresPermissions(value={"website:http:audit"}) + public String auditHttpCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity = websiteCfgService.getHttpCfg(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setAuditorId(UserUtils.getUser().getId()); + entity.setAuditTime(new Date()); + try { + websiteCfgService.auditHttpCfg(entity,isAudit); + } catch (MaatConvertException e) { + e.printStackTrace(); + logger.info("http配置下发失败:"+e.getMessage()); + addMessage(redirectAttributes, e.getMessage()); + } + } + return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+functionId; + } } diff --git a/src/main/java/com/nis/web/dao/configuration/WebsiteCfgDao.java b/src/main/java/com/nis/web/dao/configuration/WebsiteCfgDao.java index 5a2ec24cb..c51912ff6 100644 --- a/src/main/java/com/nis/web/dao/configuration/WebsiteCfgDao.java +++ b/src/main/java/com/nis/web/dao/configuration/WebsiteCfgDao.java @@ -2,6 +2,8 @@ package com.nis.web.dao.configuration; import java.util.List; +import com.nis.domain.configuration.AvFileSampleCfg; +import com.nis.domain.configuration.AvSignSampleCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.HttpBodyCfg; import com.nis.domain.configuration.HttpReqHeadCfg; @@ -40,10 +42,9 @@ public interface WebsiteCfgDao extends CrudDao{ public void deleteHttpResHdrCfg(CfgIndexInfo entity); public void deleteHttpBodyCfg(CfgIndexInfo entity); public void updateCfgIndex(CfgIndexInfo entity); - public void updateHttpIpCfg(IpPortCfg entity); - public void updateHttpUrlCfg(HttpUrlCfg entity); - public void updateHttpReqHdrCfg(HttpReqHeadCfg entity); - public void updateHttpResHdrCfg(HttpResHeadCfg entity); - public void updateHttpBodyCfg(HttpBodyCfg entity); + public void updateHttpCfgValid(CfgIndexInfo entity); + public void auditHttpCfg(CfgIndexInfo entity); + + } diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index debe0f818..92c07e1e2 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -2,11 +2,15 @@ package com.nis.web.service; import java.lang.reflect.Type; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import com.google.common.collect.Lists; import com.google.gson.Gson; @@ -17,7 +21,19 @@ import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import com.nis.domain.SysRole; import com.nis.domain.SysUser; +import com.nis.domain.configuration.BaseCfg; +import com.nis.domain.configuration.BaseIpCfg; +import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.ComplexkeywordCfg; +import com.nis.domain.configuration.HttpBodyCfg; +import com.nis.domain.configuration.IpPortCfg; +import com.nis.domain.maat.MaatCfg.GroupCfg; +import com.nis.domain.maat.MaatCfg.IpCfg; +import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; +import com.nis.domain.maat.MaatCfg.StringCfg; +import com.nis.util.ConfigServiceUtil; import com.nis.util.Configurations; +import com.nis.util.IpUtil; import com.nis.util.StringUtils; /** @@ -238,5 +254,144 @@ public abstract class BaseService { }).create(); return gson.toJson(obj); } - + /** + * 界面配置list转换为服务接口端的list + * @param dstList + * @param srcList + * @param cfgType,1为IP类型,2为字符串类型,3为增强字符串,4数值类型,5摘要类,6回调类[但字符串类域配置和增强字符串域配置在接口参数中同属于strRegionList] + * @param groupId,组号 + * @return + */ + public static Map cfgConvert(List dstList,List srcList,Integer cfgType,BaseCfg baseCfg,List groupRelationList){ + GroupCfg group = new GroupCfg(); + group.setGroupId(ConfigServiceUtil.getId(2, 1).get(0)); + group.setCompileId(baseCfg.getCompileId()); + group.setAuditTime(baseCfg.getAuditTime()); + group.setIsValid(baseCfg.getIsValid()); + groupRelationList.add(group); + Map map = new HashMap(); + if(cfgType==1){ + List numRegionList = new ArrayList(); + Integer groupId = 0; + for(int i=0;i { //保存区域IP信息 if(entity.getAreaCfg()!=null){ for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); areaIpCfgDao.saveAreaIpCfg(cfg); } @@ -203,13 +219,110 @@ public class WebsiteCfgService extends CrudService { //保存区域IP信息 if(entity.getAreaCfg()!=null){ for(AreaIpCfg cfg:entity.getAreaCfg()){ + cfg.initDefaultValue(); BeanUtils.copyProperties(entity, cfg,new String[]{"cfgDesc","cfgRegionCode","cfgType"}); areaIpCfgDao.saveAreaIpCfg(cfg); } } } + } + public void updateHttpCfgValid(Integer isAudit,Integer isValid,String ids){ + CfgIndexInfo entity = new CfgIndexInfo(); + String[] idArray = ids.split(","); + for(String id :idArray){ + entity.setCfgId(Long.parseLong(id)); + entity.setIsAudit(isAudit); + entity.setIsValid(isValid); + entity.setEditorId(UserUtils.getUser().getId()); + entity.setEditTime(new Date()); + websiteCfgDao.updateHttpCfgValid(entity); + } + } + public void auditHttpCfg(CfgIndexInfo entity,Integer isAudit) throws MaatConvertException{ + //修改数据库审核状态信息 + websiteCfgDao.auditHttpCfg(entity); + ToMaatBean maatBean = new ToMaatBean(); + MaatCfg maatCfg = new MaatCfg(); + maatCfg.initDefaultValue(); + BeanUtils.copyProperties(entity, maatCfg); - + //一条配置提交一次综合服务 + if(isAudit==1){ + entity = this.getHttpCfg(entity.getCfgId()); + List configCompileList = new ArrayList(); + List groupRelationList = new ArrayList(); + List ipRegionList = new ArrayList(); + List strRegionList = new ArrayList(); + List numRegionList = new ArrayList(); + List digestRegionList = new ArrayList(); + List areaIpRegionList = new ArrayList(); + if(entity.getIpPortList()!=null && entity.getIpPortList().size()>0){ + Map map = cfgConvert(ipRegionList,entity.getIpPortList(),1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + ipRegionList=map.get("dstList"); + numRegionList.addAll(map.get("numRegionList")); + } + if(entity.getHttpUrlList()!=null && entity.getHttpUrlList().size()>0){ + Map map = cfgConvert(strRegionList,entity.getHttpUrlList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + if(entity.getHttpReqHdrList()!=null && entity.getHttpReqHdrList().size()>0){ + Map map = cfgConvert(strRegionList,entity.getHttpReqHdrList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + if(entity.getHttpResHdrList()!=null && entity.getHttpResHdrList().size()>0){ + + Map map = cfgConvert(strRegionList,entity.getHttpResHdrList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + if(entity.getHttpReqBodyList()!=null && entity.getHttpReqBodyList().size()>0){ + Map map = cfgConvert(strRegionList,entity.getHttpReqBodyList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + if(entity.getHttpResBodyList()!=null && entity.getHttpResBodyList().size()>0){ + Map map = cfgConvert(strRegionList,entity.getHttpResBodyList(),2,entity,groupRelationList); + groupRelationList=map.get("groupList"); + strRegionList=map.get("dstList"); + } + //保存区域IP信息 + if(entity.getAreaCfg()!=null && entity.getAreaCfg().size()>0){ + Map map = cfgConvert(areaIpRegionList,entity.getAreaCfg(),1,entity,groupRelationList); + groupRelationList=map.get("groupList"); + areaIpRegionList=map.get("dstList"); + } + maatCfg.setAction(entity.getAction()); + maatCfg.setAuditTime(entity.getAuditTime()); + maatCfg.setIpRegionList(ipRegionList); + maatCfg.setStrRegionList(strRegionList); + maatCfg.setNumRegionList(numRegionList); + maatCfg.setDigestRegionList(digestRegionList); + maatCfg.setGroupRelationList(groupRelationList); + maatCfg.setGroupNum(groupRelationList.size()); + maatCfg.setAreaIpRegionList(areaIpRegionList); + configCompileList.add(maatCfg); + maatBean.setConfigCompileList(configCompileList); + maatBean.setAuditTime(entity.getAuditTime()); + maatBean.setCreatorName(entity.getCurrentUser().getName()); + maatBean.setVersion(Constants.MAAT_VERSION); + //调用服务接口下发配置数据 + String json=gsonToJson(maatBean); + logger.info("http配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json); + logger.info("http配置下发响应信息:"+result.getMsg()); + + }else if(isAudit==3){ + //调用服务接口取消配置 + String json=gsonToJson(maatBean); + logger.info("http配置下发配置参数:"+json); + //调用服务接口下发配置 + ToMaatResult result = ConfigServiceUtil.put(json,2); + logger.info("http配置取消配置响应信息:"+result.getMsg()); + } } } diff --git a/src/main/java/com/nis/web/test/MaatCfgConverTest.java b/src/main/java/com/nis/web/test/MaatCfgConverTest.java index b020e680d..20feefe85 100644 --- a/src/main/java/com/nis/web/test/MaatCfgConverTest.java +++ b/src/main/java/com/nis/web/test/MaatCfgConverTest.java @@ -57,7 +57,7 @@ public class MaatCfgConverTest { groupId++; group.setGroupId(groupId); group.setCompileId(1); - group.setOpTime(new Date()); + group.setAuditTime(new Date()); group.setIsValid(1); groupList.add(group); } @@ -100,7 +100,7 @@ public class MaatCfgConverTest { groupId++; group.setGroupId(groupId); group.setCompileId(1); - group.setOpTime(new Date()); + group.setAuditTime(new Date()); group.setIsValid(1); groupList.add(group); } @@ -135,7 +135,7 @@ public class MaatCfgConverTest { groupId++; group.setGroupId(groupId); group.setCompileId(1); - group.setOpTime(new Date()); + group.setAuditTime(new Date()); group.setIsValid(1); groupList.add(group); } diff --git a/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp b/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp index 50da41d01..c9443d114 100644 --- a/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/website/httpList.jsp @@ -177,7 +177,7 @@
- +
@@ -186,9 +186,9 @@