diff --git a/src/main/java/com/nis/domain/configuration/template/IpAllNotDoLogTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpAllNotDoLogTemplate.java new file mode 100644 index 000000000..6075c8938 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/IpAllNotDoLogTemplate.java @@ -0,0 +1,78 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * @Description: excel导入IP类配置 + */ +public class IpAllNotDoLogTemplate extends BasicTemplate{ + + /** + * @Fields serialVersionUID:TODO(用一句话描述这个变量表示什么) + * + * @since 1.0.0 + */ + + + + private String cfgDesc; + private String srcIpAddress; + private String destIpAddress; + private String srcPort; + private String destPort; + private Integer protocol; + private Integer direction; + + @ExcelField(title="config_describe",align=2,sort=1) + public String getCfgDesc() { + return cfgDesc; + } + public void setCfgDesc(String cfgDesc) { + this.cfgDesc = cfgDesc; + } + @ExcelField(title="client_ip",align=2,sort=11) + public String getSrcIpAddress() { + return srcIpAddress; + } + public void setSrcIpAddress(String srcIpAddress) { + this.srcIpAddress = srcIpAddress; + } + @ExcelField(title="server_ip",align=2,sort=12) + public String getDestIpAddress() { + return destIpAddress; + } + public void setDestIpAddress(String destIpAddress) { + this.destIpAddress = destIpAddress; + } + + @ExcelField(title="client_port",align=2,sort=13) + public String getSrcPort() { + return srcPort; + } + public void setSrcPort(String srcPort) { + this.srcPort = srcPort; + } + @ExcelField(title="server_port",align=2,sort=14) + public String getDestPort() { + return destPort; + } + public void setDestPort(String destPort) { + this.destPort = destPort; + } + + @ExcelField(title="protocol",align=2,sort=15) + public Integer getProtocol() { + return protocol; + } + public void setProtocol(Integer protocol) { + this.protocol = protocol; + } + @ExcelField(title="direction",align=2,sort=16) + public Integer getDirection() { + return direction; + } + public void setDirection(Integer direction) { + this.direction = direction; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/template/IpAllTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpAllTemplate.java index 01e03464e..860577947 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpAllTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpAllTemplate.java @@ -31,6 +31,7 @@ public class IpAllTemplate extends BasicTemplate{ private String destPort; private Integer protocol; private Integer direction; + private Integer doLog; @ExcelField(title="config_describe",align=2,sort=1) public String getCfgDesc() { @@ -84,4 +85,11 @@ public class IpAllTemplate extends BasicTemplate{ this.direction = direction; } + @ExcelField(title="do_log",dictType="DO_LOG",align=2,sort=2) + public Integer getDoLog() { + return doLog; + } + public void setDoLog(Integer doLog) { + this.doLog = doLog; + } } diff --git a/src/main/java/com/nis/domain/configuration/template/IpPayloadTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpPayloadTemplate.java index 08f028394..bb7ba7902 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpPayloadTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpPayloadTemplate.java @@ -12,21 +12,21 @@ public class IpPayloadTemplate extends IpAllTemplate { private String userRegion2; private String userRegion3; - @ExcelField(title="replace_zone",dictType="INTERCEPT_REPLACE_ZONE",align=2,sort=2) + @ExcelField(title="replace_zone",dictType="INTERCEPT_REPLACE_ZONE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } public void setUserRegion1(String userRegion1) { this.userRegion1 = userRegion1; } - @ExcelField(title="replaced_content",align=2,sort=3) + @ExcelField(title="replaced_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } public void setUserRegion2(String userRegion2) { this.userRegion2 = userRegion2; } - @ExcelField(title="replace_content",align=2,sort=4) + @ExcelField(title="replace_content",align=2,sort=5) public String getUserRegion3() { return userRegion3; } diff --git a/src/main/java/com/nis/domain/configuration/template/IpWhitelistTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpWhitelistTemplate.java index 728e672a8..a839585db 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpWhitelistTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpWhitelistTemplate.java @@ -30,6 +30,7 @@ public class IpWhitelistTemplate extends BasicTemplate{ private String destPort; private Integer protocol; private Integer direction; + private Integer doLog; @ExcelField(title="config_describe",align=2,sort=1) public String getCfgDesc() { @@ -84,4 +85,12 @@ public class IpWhitelistTemplate extends BasicTemplate{ this.direction = direction; } + @ExcelField(title="do_log",dictType="DO_LOG",align=2,sort=2) + public Integer getDoLog() { + return doLog; + } + public void setDoLog(Integer doLog) { + this.doLog = doLog; + } + } diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 7eb9f2345..0de0323c2 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -490,6 +490,34 @@ public class ExportExcel { index++; } + // doLog + if("do_log".equals(headerStr)) { + commentStr=""; + List dict=DictUtils.getDictList("DO_LOG"); + if(dict !=null && dict.size()>0){ + String configDoLog = service.getConfigDoLog(); + String doLogOption = configDoLog.substring(configDoLog.indexOf(";"), configDoLog.lastIndexOf(";")); + for (SysDataDictionaryItem sysDataDictionaryItem : dict) { + String itemCode = sysDataDictionaryItem.getItemCode(); + if(doLogOption.contains(itemCode)) { + commentStr=commentStr+itemCode+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue(),sysDataDictionaryItem.getItemValue())+")\n"; + index++; + } + } + defaultValue = configDoLog.substring(configDoLog.lastIndexOf(";")+1); + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + commentStr=commentStr+"\n"+msgProp.getProperty("rule_desc_tip")+":\n"; + index++; + if(!StringUtil.isEmpty(defaultValue)){ + //1、默认值说明 + commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":"+defaultValue+"\n"; + index++; + index++; + } + } + if(region.getRegionType().equals(1)){//IP配置 //ip配置需要导入的信息:srcIp srcPort destIp destPort Protocol Direction //确定需要导入的srcIp srcPort destIp destPort信息 diff --git a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java index 9fef5f059..8e7e1c414 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -113,6 +113,9 @@ public class CheckIpFormatThread implements Callable{ errInfo.append(prop.getProperty("config_describe")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":128") + ";"); } + // doLog属性检验 + this.validDoLog(baseIpCfg,errInfo); + // 特殊字段验证 // packet ip ratelimit if (serviceDict!=null&&serviceDict.getFunctionId().intValue() == 5 && serviceDict.getAction().intValue() == 64) { @@ -158,6 +161,10 @@ public class CheckIpFormatThread implements Callable{ // payload ip if (regionDict.getFunctionId().equals(212)) { // replace_zone + if (StringUtils.isBlank(baseIpCfg.getUserRegion1())) { + List dict=DictUtils.getDictList("INTERCEPT_REPLACE_ZONE"); + baseIpCfg.setUserRegion1(dict.get(0).getItemCode()); + } String userRegion1 = baseIpCfg.getUserRegion1(); if (StringUtils.isNotBlank(userRegion1)) { Object val = DictUtils.getDictLabel("INTERCEPT_REPLACE_ZONE", userRegion1); @@ -165,9 +172,6 @@ public class CheckIpFormatThread implements Callable{ errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("replace_zone")) + ";"); } - } else { - errInfo.append( - String.format(prop.getProperty("can_not_null"), prop.getProperty("replace_zone")) + ";"); } // replaced_content @@ -1153,7 +1157,31 @@ public class CheckIpFormatThread implements Callable{ errInfo.append(prop.get(ipName) + " " + prop.get("ip_range_smaller") + ";"); } } - + + /** + * doLog属性校验 + * @param baseIpCfg + * @param errInfo + */ + public void validDoLog(IpPortCfg baseIpCfg, StringBuffer errInfo) { + + String configDoLog = serviceDict.getConfigDoLog(); + if(StringUtils.isNotBlank(configDoLog)) { + String defaultValue = configDoLog.substring(configDoLog.lastIndexOf(";")+1); + String doLogOption = configDoLog.substring(configDoLog.indexOf(";")+1, configDoLog.lastIndexOf(";")); + if(baseIpCfg.getDoLog() == null) { + baseIpCfg.setDoLog(Integer.parseInt(defaultValue)); + } + Integer doLog = baseIpCfg.getDoLog(); + if(!doLogOption.contains(doLog+"")) { + errInfo.append( + String.format(prop.getProperty("is_incorrect"), prop.getProperty("do_log")) + + ";"); + } + } + + } + /** * 根据位运算把 byte[] -> int * diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 99b8409f4..04b3fd5e9 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -98,10 +98,12 @@ import com.nis.domain.configuration.template.HttpsRejectTemplate; import com.nis.domain.configuration.template.HttpsReplaceComplexTemplate; import com.nis.domain.configuration.template.HttpsReplaceIpTemplate; import com.nis.domain.configuration.template.HttpsReplaceTemplate; +import com.nis.domain.configuration.template.IpAllNotDoLogTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; +import com.nis.domain.configuration.template.IpWhitelistTemplate; import com.nis.domain.configuration.template.P2pHashStringTemplate; import com.nis.domain.configuration.template.P2pIpTemplate; import com.nis.domain.configuration.template.StringAllTemplate; @@ -1371,6 +1373,9 @@ public class BaseController { BlockingQueue list = ei.getDataList(IpRateLimitTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,asnGroupInfos, list); + } else if(serviceDict!=null&&serviceDict.getAction().equals(32)) { + BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,asnGroupInfos, list); } else { BlockingQueue list = ei.getDataList(IpAllTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,asnGroupInfos, list); @@ -1413,6 +1418,9 @@ public class BaseController { }else if(regionDict.getFunctionId().equals(200) && serviceDict.getAction().equals(64)) {// 拦截策略(限速) BlockingQueue list = ei.getDataList(IpRateLimitTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,asnGroupInfos, list); + }else if(regionDict.getFunctionId().equals(3)) { // IP白名单 + BlockingQueue list = ei.getDataList(IpWhitelistTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,asnGroupInfos, list); }else { BlockingQueue list = ei.getDataList(IpAllTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,asnGroupInfos, list); @@ -1643,7 +1651,7 @@ public class BaseController { cfg.setCfgType(regionDict.getConfigRegionValue()); cfg.setCreateTime(date); cfg.setCreatorId(UserUtils.getUser().getId()); - cfg.setDoLog(2); + //cfg.setDoLog(2); cfg.setFunctionId(regionDict.getFunctionId()); if(isSend.equals("1")) { cfg.setIsAudit(Constants.AUDIT_YES); @@ -2235,6 +2243,8 @@ public class BaseController { if (regionDict.getFunctionId().equals(5)) { if (serviceDict!=null&&serviceDict.getAction().equals(64)) { ei.loadInitParams(IpRateLimitTemplate.class, msgProp, regionDict, serviceDict); + } else if(serviceDict!=null&&serviceDict.getAction().equals(32)) { + ei.loadInitParams(IpAllNotDoLogTemplate.class, msgProp, regionDict, serviceDict); } else { ei.loadInitParams(IpAllTemplate.class, msgProp, regionDict, serviceDict); } @@ -2259,6 +2269,8 @@ public class BaseController { ei.loadInitParams(HttpsReplaceIpTemplate.class, this.getMsgProp(), regionDict, serviceDict); } else if(regionDict.getFunctionId().equals(200) && serviceDict.getAction().intValue()==64){// 拦截策略(限速) ei.loadInitParams(IpRateLimitTemplate.class, msgProp, regionDict, serviceDict); + } else if(regionDict.getFunctionId().equals(3)) { // IP白名单 + ei.loadInitParams(IpWhitelistTemplate.class, msgProp, regionDict, serviceDict); } else { ei.loadInitParams(IpAllTemplate.class, msgProp, regionDict, serviceDict); } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java index d1e350729..f36d142fc 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/IpController.java @@ -50,6 +50,7 @@ import com.nis.domain.configuration.template.HttpsRejectTemplate; import com.nis.domain.configuration.template.HttpsReplaceComplexTemplate; import com.nis.domain.configuration.template.HttpsReplaceIpTemplate; import com.nis.domain.configuration.template.HttpsReplaceTemplate; +import com.nis.domain.configuration.template.IpAllNotDoLogTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; @@ -327,7 +328,12 @@ public class IpController extends BaseController{ ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpRateLimitTemplate.class, 2); excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); - }else{ + }else if(serviceDict.getAction().equals(32)){ // 丢弃 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpAllNotDoLogTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else { List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpAllTemplate.class, 2); excel.setDataList(pro,classList,null).