From 0b1b3132ef82e2b50e4b3a8f00473c9416b77880 Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Sun, 13 Jan 2019 14:51:23 +0800 Subject: [PATCH 01/45] =?UTF-8?q?Whitelist=E3=80=81Packet=E3=80=81Stream?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5=E5=A2=9E=E5=8A=A0doLog?= =?UTF-8?q?=E5=B1=9E=E6=80=A7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/IpAllNotDoLogTemplate.java | 78 +++++++++++++++++++ .../configuration/template/IpAllTemplate.java | 8 ++ .../template/IpPayloadTemplate.java | 6 +- .../template/IpWhitelistTemplate.java | 9 +++ .../java/com/nis/util/excel/ExportExcel.java | 28 +++++++ .../excel/thread/CheckIpFormatThread.java | 36 ++++++++- .../nis/web/controller/BaseController.java | 14 +++- .../configuration/ntc/IpController.java | 8 +- 8 files changed, 178 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/nis/domain/configuration/template/IpAllNotDoLogTemplate.java 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). From ad370ceec3379ccd43d5fb5ad6b7cead93ded47b Mon Sep 17 00:00:00 2001 From: dongxiaoyan Date: Sun, 13 Jan 2019 15:36:56 +0800 Subject: [PATCH 02/45] =?UTF-8?q?=E6=81=A2=E5=A4=8Dno=5Flog=E3=80=81all=5F?= =?UTF-8?q?log=E3=80=81framework=5Flog=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/messages/message_en.properties | 5 ++++- src/main/resources/messages/message_ru.properties | 5 ++++- src/main/resources/messages/message_zh_CN.properties | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 0e243cdb5..5fbb39e50 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1467,4 +1467,7 @@ website_statistics=Website Statistics not_exist=not exist real_time=Real Time history=History -all_columns_hidden=All columns are hidden! \ No newline at end of file +all_columns_hidden=All columns are hidden! +no_log=Not Do Log +all_log=Log All Logs +framework_log=Structured Logs \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 5c177b077..c3edef07d 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1471,4 +1471,7 @@ website_statistics=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 not_exist=not exist real_time=Real Time history=History -all_columns_hidden=All columns are hidden! \ No newline at end of file +all_columns_hidden=All columns are hidden! +no_log=\u041d\u0435 \u041d\u0430\u0434\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c +all_log=\u0417\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0412\u0441\u0435 \u0416\u0443\u0440\u043D\u0430\u043B\u044B +framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0416\u0443\u0440\u043D\u0430\u043B\u044B \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 6ba7166ca..3ee29773d 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1467,4 +1467,7 @@ website_statistics=\u7f51\u7ad9\u7edf\u8ba1 not_exist=\u4e0d\u5b58\u5728 real_time=\u5b9e\u65f6 history=\u5386\u53f2 -all_columns_hidden=\u6240\u6709\u7684\u5217\u90fd\u9690\u85cf\u4e86\uff01 \ No newline at end of file +all_columns_hidden=\u6240\u6709\u7684\u5217\u90fd\u9690\u85cf\u4e86\uff01 +no_log=\u4E0D\u8BB0\u5F55 +all_log=\u8BB0\u5F55\u6240\u6709\u65E5\u5FD7 +framework_log=\u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7 \ No newline at end of file From 5a6421506299255fecfd1fe27d5f36e425516c37 Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Sun, 13 Jan 2019 17:25:49 +0800 Subject: [PATCH 03/45] =?UTF-8?q?Protocol=E9=85=8D=E7=BD=AE=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=A2=9E=E5=8A=A0doLog=E5=B1=9E=E6=80=A7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/ComplexStringAllTemplate.java | 9 ++++++ .../template/DnsComplexStringTemplate.java | 2 +- .../configuration/template/DnsIpTemplate.java | 2 +- .../template/StringAllTemplate.java | 9 ++++++ .../CheckComplexStringFormatThread.java | 30 ++++++++++++++++++- .../excel/thread/CheckStringFormatThread.java | 28 +++++++++++++++++ .../nis/web/controller/BaseController.java | 8 ++--- 7 files changed, 81 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/nis/domain/configuration/template/ComplexStringAllTemplate.java b/src/main/java/com/nis/domain/configuration/template/ComplexStringAllTemplate.java index 18e23d19e..6446f79f9 100644 --- a/src/main/java/com/nis/domain/configuration/template/ComplexStringAllTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/ComplexStringAllTemplate.java @@ -21,6 +21,7 @@ public class ComplexStringAllTemplate extends BasicTemplate{ private Integer matchMethod ; private Integer isHex; private Integer isCaseInsenstive; + private Integer doLog; @ExcelField(title="config_describe",align=2,sort=1) public String getCfgDesc() { @@ -64,4 +65,12 @@ public class ComplexStringAllTemplate extends BasicTemplate{ public void setIsCaseInsenstive(Integer isCaseInsenstive) { this.isCaseInsenstive = isCaseInsenstive; } + + @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/DnsComplexStringTemplate.java b/src/main/java/com/nis/domain/configuration/template/DnsComplexStringTemplate.java index 103899a72..18a7139d4 100644 --- a/src/main/java/com/nis/domain/configuration/template/DnsComplexStringTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DnsComplexStringTemplate.java @@ -16,7 +16,7 @@ import com.nis.util.excel.ExcelField; public class DnsComplexStringTemplate extends ComplexStringAllTemplate { private Long dnsStrategyId; - @ExcelField(title="policy_name",align=2,sort=2) + @ExcelField(title="policy_name",align=2,sort=3) public Long getDnsStrategyId() { return dnsStrategyId; } diff --git a/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java index 79a16c5fe..5907117ca 100644 --- a/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java @@ -24,7 +24,7 @@ public class DnsIpTemplate extends IpAllTemplate { private Integer dnsStrategyId; - @ExcelField(title="policy_name",align=2,sort=2) + @ExcelField(title="policy_name",align=2,sort=3) public Integer getDnsStrategyId() { return dnsStrategyId; } diff --git a/src/main/java/com/nis/domain/configuration/template/StringAllTemplate.java b/src/main/java/com/nis/domain/configuration/template/StringAllTemplate.java index c6e1b097d..4b5141d0d 100644 --- a/src/main/java/com/nis/domain/configuration/template/StringAllTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/StringAllTemplate.java @@ -20,6 +20,7 @@ public class StringAllTemplate extends BasicTemplate{ private Integer matchMethod ; private Integer isHex; private Integer isCaseInsenstive; + private Integer doLog; @ExcelField(title="config_describe",align=2,sort=1) public String getCfgDesc() { @@ -56,4 +57,12 @@ public class StringAllTemplate extends BasicTemplate{ public void setIsCaseInsenstive(Integer isCaseInsenstive) { this.isCaseInsenstive = isCaseInsenstive; } + + @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/thread/CheckComplexStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java index f75a72812..e01a35d7c 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckComplexStringFormatThread.java @@ -19,6 +19,7 @@ import com.beust.jcommander.internal.Sets; import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; +import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.DnsResStrategy; import com.nis.util.Constants; @@ -101,7 +102,10 @@ public class CheckComplexStringFormatThread implements Callable{ if(baseStringCfg.getCfgKeywords().length() < 4 || baseStringCfg.getCfgKeywords().length() > 1024){ errInfo.append(prop.getProperty("key_word")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("min_length")+":4,"+prop.getProperty("max_length")+":1024") + ";"); } - + + // doLog属性检验 + this.validDoLog(baseStringCfg,errInfo); + if (regionDict.getRegionType().equals(3)) { if (regionDict.getFunctionId().equals(7)) { Long dnsStrategyId = baseStringCfg.getDnsStrategyId(); @@ -438,4 +442,28 @@ public class CheckComplexStringFormatThread implements Callable{ logger.warn("validate complexString data finish,cost:"+(end-start)); return stringList; } + + /** + * doLog属性校验 + * @param baseStringCfg + * @param errInfo + */ + public void validDoLog(ComplexkeywordCfg baseStringCfg, 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(baseStringCfg.getDoLog() == null) { + baseStringCfg.setDoLog(Integer.parseInt(defaultValue)); + } + Integer doLog = baseStringCfg.getDoLog(); + if(!doLogOption.contains(doLog+"")) { + errInfo.append( + String.format(prop.getProperty("is_incorrect"), prop.getProperty("do_log")) + + ";"); + } + } + + } } diff --git a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java index bc4a6bf9f..b9630ee67 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java @@ -20,6 +20,7 @@ import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.configuration.BaseStringCfg; +import com.nis.domain.configuration.IpPortCfg; import com.nis.util.Constants; import com.nis.util.DictUtils; @@ -97,6 +98,9 @@ public class CheckStringFormatThread implements Callable{ errInfo.append(prop.getProperty("config_describe")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":128") + ";"); } + // doLog属性检验 + this.validDoLog(baseStringCfg,errInfo); + if (regionDict.getRegionType().equals(2)) { if (regionDict.getFunctionId().equals(510) && "p2p_hash".equals(regionDict.getConfigServiceType())) { String userRegion1 = baseStringCfg.getUserRegion1(); @@ -491,4 +495,28 @@ public class CheckStringFormatThread implements Callable{ logger.warn("validate stringCfg data finish,cost:"+(end-start)); return stringList; } + + /** + * doLog属性校验 + * @param baseStringCfg + * @param errInfo + */ + public void validDoLog(BaseStringCfg baseStringCfg, 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(baseStringCfg.getDoLog() == null) { + baseStringCfg.setDoLog(Integer.parseInt(defaultValue)); + } + Integer doLog = baseStringCfg.getDoLog(); + if(!doLogOption.contains(doLog+"")) { + errInfo.append( + String.format(prop.getProperty("is_incorrect"), prop.getProperty("do_log")) + + ";"); + } + } + + } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 04b3fd5e9..08ddaf608 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -1801,7 +1801,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); @@ -1897,7 +1897,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); @@ -1953,12 +1953,12 @@ public class BaseController { for (ComplexkeywordCfg cfg : _complexkeywordCfgs) { cfg.setAction(serviceDict.getAction()); /*cfg.setAuditorId(UserUtils.getUser().getId()); - cfg.setAuditTime(date);*/ + cfg.setAuditTime(date);*/ cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); 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); From 78363077bf0bd74d57407cbff70eb41871c90b47 Mon Sep 17 00:00:00 2001 From: zhangwei Date: Sun, 13 Jan 2019 16:00:37 +0600 Subject: [PATCH 04/45] =?UTF-8?q?=E4=BF=AE=E6=AD=A3voip,=E6=B5=81=E5=AA=92?= =?UTF-8?q?=E4=BD=93=E5=92=8Cddos=E8=A1=A8=E5=8D=95doLog=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=AD=A3=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/messages/message_en.properties | 6 +++--- src/main/resources/messages/message_ru.properties | 6 +++--- .../webapp/WEB-INF/views/cfg/av/contUrl/contUrlForm.jsp | 8 ++++---- src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp | 8 ++++---- src/main/webapp/WEB-INF/views/cfg/ddosIpCfgForm.jsp | 1 + 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 5fbb39e50..d12827d31 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1468,6 +1468,6 @@ not_exist=not exist real_time=Real Time history=History all_columns_hidden=All columns are hidden! -no_log=Not Do Log -all_log=Log All Logs -framework_log=Structured Logs \ No newline at end of file +no_log=No Log +all_log=Meta And File Log +framework_log=Meta Log \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index c3edef07d..6881b60cf 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1472,6 +1472,6 @@ not_exist=not exist real_time=Real Time history=History all_columns_hidden=All columns are hidden! -no_log=\u041d\u0435 \u041d\u0430\u0434\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c -all_log=\u0417\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0412\u0441\u0435 \u0416\u0443\u0440\u043D\u0430\u043B\u044B -framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0435 \u0416\u0443\u0440\u043D\u0430\u043B\u044B \ No newline at end of file +no_log=\u041D\u0435\u0442 \u0416\u0443\u0440\u043D\u0430\u043B\u043E\u0432 +all_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B \u0438 \u0416\u0443\u0440\u043D\u0430\u043B-\u0444\u0430\u0439\u043B +framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlForm.jsp b/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlForm.jsp index ce7c02538..8b3bac4e8 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlForm.jsp @@ -13,9 +13,9 @@ $(document) .ready( function() { - if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){ + /* if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){ $("input[name=doLog][value=1]").prop("checked",true); - } + } */ /* $(".glyphicon-plus").first().click(); */ /* $("#cancel").on("click", function() { window.history.back(); @@ -217,8 +217,8 @@ -
-
+
+
diff --git a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp index fef644d19..e3a580387 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipForm.jsp @@ -13,9 +13,9 @@ $(document) .ready( function() { - if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){ + /* if($("input[name='compileId']").val()==null||$("input[name='compileId']").val()==''){ $("input[name=doLog][value=1]").prop("checked",true); - } + } */ $(".glyphicon-plus").first().click(); /* $("#cancel").on("click", function() { window.history.back(); @@ -217,8 +217,8 @@
-
-
+
+
diff --git a/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgForm.jsp index e986383f3..598256c1f 100644 --- a/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgForm.jsp @@ -148,6 +148,7 @@ $(function(){ serviceId="${service.serviceId }" protocolId="${service.protocolId }" regionCode="${service.regionCode }" + configDoLog="${service.configDoLog }" value="${service.action }" class="required action" checked> From 59ed7f6371946f2ab3e6a0aead676acb2b5b32ed Mon Sep 17 00:00:00 2001 From: leijun Date: Sun, 13 Jan 2019 18:32:53 +0800 Subject: [PATCH 05/45] =?UTF-8?q?=E5=A4=9A=E5=AA=92=E4=BD=93=E3=80=81?= =?UTF-8?q?=E5=9B=BD=E5=AE=B6=E4=BB=A3=E7=90=86do=5Flog=E8=B0=83=E6=95=B4?= =?UTF-8?q?=20framework=5Flog=E5=9B=BD=E9=99=85=E5=8C=96=E6=94=B9=E4=B8=BA?= =?UTF-8?q?c=5Flog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dao/configuration/DnsResStrategyDao.xml | 12 ++++-- .../messages/message_zh_CN.properties | 2 +- .../function_service_dict_add_do_log.sql | 11 ++++++ .../WEB-INF/views/cfg/app/appIpCfgForm.jsp | 4 +- .../views/cfg/app/appTopicDomainCfgForm.jsp | 3 +- .../WEB-INF/views/cfg/ddosIpCfgList.jsp | 2 +- .../views/cfg/fileTransfer/fileDigestForm.jsp | 37 +++++++++++-------- .../views/cfg/intercept/interceptForm.jsp | 2 +- .../views/cfg/intercept/interceptList.jsp | 2 +- .../cfg/maintenance/dnsResStrategy/form.jsp | 28 +++++++++++++- .../WEB-INF/views/cfg/proxy/cache/form.jsp | 7 ++-- .../cfg/proxy/control/httpRedirectForm.jsp | 5 ++- .../cfg/proxy/control/httpRedirectList.jsp | 2 +- 13 files changed, 85 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/sql/20190113/function_service_dict_add_do_log.sql diff --git a/src/main/java/com/nis/web/dao/configuration/DnsResStrategyDao.xml b/src/main/java/com/nis/web/dao/configuration/DnsResStrategyDao.xml index 00246872e..cf3f9708c 100644 --- a/src/main/java/com/nis/web/dao/configuration/DnsResStrategyDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/DnsResStrategyDao.xml @@ -38,6 +38,7 @@ + r.cfg_id,r.cfg_desc,r.res_group_1_id, @@ -47,7 +48,7 @@ ,r.max_ttl,r.cfg_type,r.action ,r.is_valid,r.is_audit,r.creator_id,r.create_time,r.editor_id ,r.edit_time,r.auditor_id,r.audit_time,r.service_id,r.request_id - ,r.is_area_effective,r.classify,r.attribute,r.lable + ,r.is_area_effective,r.classify,r.attribute,r.lable,r.do_log ,r.area_effective_ids,r.function_id,r.cfg_region_code,r.compile_id @@ -229,7 +230,8 @@ LEFT JOIN dns_res_strategy r ON a.dns_strategy_id=r.res_group_1_id max_ttl, cfg_type, compile_Id, - cfg_region_code + cfg_region_code, + do_log )values ( #{cfgDesc,jdbcType=VARCHAR}, #{action,jdbcType=INTEGER}, @@ -263,7 +265,8 @@ LEFT JOIN dns_res_strategy r ON a.dns_strategy_id=r.res_group_1_id #{maxTtl,jdbcType=INTEGER}, #{cfgType,jdbcType=VARCHAR}, #{compileId,jdbcType=INTEGER}, - #{cfgRegionCode,jdbcType=INTEGER} + #{cfgRegionCode,jdbcType=INTEGER}, + #{doLog,jdbcType=INTEGER} ) @@ -358,6 +361,9 @@ LEFT JOIN dns_res_strategy r ON a.dns_strategy_id=r.res_group_1_id max_ttl = #{maxTtl,jdbcType=INTEGER}, + + do_log = #{doLog,jdbcType=INTEGER}, + diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 3ee29773d..da61fff6d 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1470,4 +1470,4 @@ history=\u5386\u53f2 all_columns_hidden=\u6240\u6709\u7684\u5217\u90fd\u9690\u85cf\u4e86\uff01 no_log=\u4E0D\u8BB0\u5F55 all_log=\u8BB0\u5F55\u6240\u6709\u65E5\u5FD7 -framework_log=\u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7 \ No newline at end of file +c_log=\u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7 \ No newline at end of file diff --git a/src/main/resources/sql/20190113/function_service_dict_add_do_log.sql b/src/main/resources/sql/20190113/function_service_dict_add_do_log.sql new file mode 100644 index 000000000..3ff395954 --- /dev/null +++ b/src/main/resources/sql/20190113/function_service_dict_add_do_log.sql @@ -0,0 +1,11 @@ +#snatַع +UPDATE function_service_dict SET config_do_log='0;2;2' WHERE service_id=834 AND function_id=633; +#snat ip +UPDATE function_service_dict SET config_do_log='0;2;2' WHERE service_id=835 AND function_id=300; +#dnat ip +UPDATE function_service_dict SET config_do_log='0;2;2' WHERE service_id=836 AND function_id=304; + +#dns strategy +UPDATE function_service_dict SET config_do_log='0;2;2' WHERE service_id=65 AND function_id=400; + +ALTER TABLE dns_res_strategy ADD COLUMN `do_log` int(11) DEFAULT NULL; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appIpCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appIpCfgForm.jsp index f12fd6669..5dde687e4 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appIpCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appIpCfgForm.jsp @@ -228,6 +228,7 @@ $(function(){
+ + + + + + + +
diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/cache/form.jsp b/src/main/webapp/WEB-INF/views/cfg/proxy/cache/form.jsp index 0cc340f2c..207032874 100644 --- a/src/main/webapp/WEB-INF/views/cfg/proxy/cache/form.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/proxy/cache/form.jsp @@ -362,10 +362,11 @@ varStatus="satus">
- <%--
+
@@ -404,7 +405,7 @@
-
--%> +

diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/control/httpRedirectForm.jsp b/src/main/webapp/WEB-INF/views/cfg/proxy/control/httpRedirectForm.jsp index db03e6c6c..94678d4bf 100644 --- a/src/main/webapp/WEB-INF/views/cfg/proxy/control/httpRedirectForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/proxy/control/httpRedirectForm.jsp @@ -171,9 +171,10 @@

+ + + + +
diff --git a/src/main/webapp/WEB-INF/views/cfg/intercept/strateagy/trustedCertForm.jsp b/src/main/webapp/WEB-INF/views/cfg/intercept/strateagy/trustedCertForm.jsp index ef5666540..3cebfb2ff 100644 --- a/src/main/webapp/WEB-INF/views/cfg/intercept/strateagy/trustedCertForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/intercept/strateagy/trustedCertForm.jsp @@ -118,9 +118,10 @@ function certFileValidate(){ varStatus="satus">
+ + + + + +
From eb0f298058bfbe8e88af323f859565aa17eb5663 Mon Sep 17 00:00:00 2001 From: zhangwei Date: Sun, 13 Jan 2019 21:32:25 +0600 Subject: [PATCH 07/45] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9app=20payload?= =?UTF-8?q?=E7=89=B9=E5=BE=81=EF=BC=8C=E6=8B=86=E5=88=86L3=5Fheader?= =?UTF-8?q?=E4=B8=BAL3=5Fheader=5FIP,L3=5Fheader=5FICMP,=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=81=8F=E7=A7=BB=E9=87=8F=E8=A1=A8=E8=BE=BE=E5=BC=8F=EF=BC=9B?= =?UTF-8?q?=202.=E5=9F=9F=E5=90=8D=E7=BB=9F=E8=AE=A1=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E5=9F=9F=E5=90=8D=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E9=99=A4id=3D0(Other)=E7=9A=84=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E6=9F=A5=E8=AF=A2=EF=BC=9B=203.=E9=80=9A=E8=81=94?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=E6=97=A5=E5=BF=97=E7=9A=84=E4=B8=8B=E6=8B=89?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=EF=BC=8C?= =?UTF-8?q?=E5=A2=9Eselect=E4=B8=BA=E7=A9=BA=E7=9A=84=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E5=90=A6=E5=88=99reset=E6=97=B6=EF=BC=8C=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E5=AE=9A=E4=BD=8D=E5=9C=A8=E4=BA=86Other=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/AppComplexFeatureCfg.java | 28 ++++ .../domain/configuration/AppFeatureIndex.java | 60 ++++++++ .../configuration/AppMultiFeatureCfgDao.xml | 17 ++- .../AppMultiFeatureCfgService.java | 137 ++++++++++++++---- .../update_app_paylload_feature_dict.sql | 64 ++++++++ .../views/cfg/app/appMultiFeatureCfgForm.jsp | 79 ++++++++-- .../views/cfg/app/appSubFeatureList.jsp | 65 ++++++--- .../views/dashboard/trafficWebTypeList.jsp | 4 +- .../views/log/ntc/connRecordLogList.jsp | 3 + src/main/webapp/WEB-INF/views/login.jsp | 9 +- .../webapp/static/global/scripts/common.js | 10 +- 11 files changed, 397 insertions(+), 79 deletions(-) create mode 100644 src/main/resources/sql/20190113/update_app_paylload_feature_dict.sql diff --git a/src/main/java/com/nis/domain/configuration/AppComplexFeatureCfg.java b/src/main/java/com/nis/domain/configuration/AppComplexFeatureCfg.java index 779681480..230713804 100644 --- a/src/main/java/com/nis/domain/configuration/AppComplexFeatureCfg.java +++ b/src/main/java/com/nis/domain/configuration/AppComplexFeatureCfg.java @@ -55,6 +55,11 @@ public class AppComplexFeatureCfg extends BaseCfg { private String icmpCode; private String icmpIdentifier; private String headerType; + //以下参数为APP payload payload的特殊属性(偏移量表达式时处理) + private Integer payloadOffset; + private Integer payloadSize;//下发综合服务接口时,为单独的域配置 + private String payloadPacketDirection;//下发综合服务接口时,为单独的域配置 + public String getCfgRegionCode1() { return cfgRegionCode1; @@ -299,5 +304,28 @@ public class AppComplexFeatureCfg extends BaseCfg { this.headerType = headerType; } + public Integer getPayloadOffset() { + return payloadOffset; + } + + public void setPayloadOffset(Integer payloadOffset) { + this.payloadOffset = payloadOffset; + } + + public Integer getPayloadSize() { + return payloadSize; + } + + public void setPayloadSize(Integer payloadSize) { + this.payloadSize = payloadSize; + } + + public String getPayloadPacketDirection() { + return payloadPacketDirection; + } + + public void setPayloadPacketDirection(String payloadPacketDirection) { + this.payloadPacketDirection = payloadPacketDirection; + } } diff --git a/src/main/java/com/nis/domain/configuration/AppFeatureIndex.java b/src/main/java/com/nis/domain/configuration/AppFeatureIndex.java index 45ef53501..32c5a2b06 100644 --- a/src/main/java/com/nis/domain/configuration/AppFeatureIndex.java +++ b/src/main/java/com/nis/domain/configuration/AppFeatureIndex.java @@ -46,6 +46,12 @@ public class AppFeatureIndex extends BaseCfg { private String cfgRegionType; private String cfgRegionValue; private String cfgRegionCode1; + private Integer isDrop;// + private Integer isLoop; + private Integer dropTime;//drop持续时间,默认180s,0-1800s + private Integer loopTime;//loop持续时间,默认180s,0-1800s + private Integer isRelation; + private Integer relationTime;//关联持续时间,默认10s,0-180s public static String getTablename() { return tableName; } @@ -133,5 +139,59 @@ public class AppFeatureIndex extends BaseCfg { public void setNumCfgList(List numCfgList) { this.numCfgList = numCfgList; } + public Integer getExprType() { + return exprType; + } + public void setExprType(Integer exprType) { + this.exprType = exprType; + } + public Integer getMatchMethod() { + return matchMethod; + } + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } + public Integer getIsHexbin() { + return isHexbin; + } + public void setIsHexbin(Integer isHexbin) { + this.isHexbin = isHexbin; + } + public Integer getIsDrop() { + return isDrop; + } + public void setIsDrop(Integer isDrop) { + this.isDrop = isDrop; + } + public Integer getIsLoop() { + return isLoop; + } + public void setIsLoop(Integer isLoop) { + this.isLoop = isLoop; + } + public Integer getDropTime() { + return dropTime; + } + public void setDropTime(Integer dropTime) { + this.dropTime = dropTime; + } + public Integer getLoopTime() { + return loopTime; + } + public void setLoopTime(Integer loopTime) { + this.loopTime = loopTime; + } + public Integer getIsRelation() { + return isRelation; + } + public void setIsRelation(Integer isRelation) { + this.isRelation = isRelation; + } + public Integer getRelationTime() { + return relationTime; + } + public void setRelationTime(Integer relationTime) { + this.relationTime = relationTime; + } } diff --git a/src/main/java/com/nis/web/dao/configuration/AppMultiFeatureCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/AppMultiFeatureCfgDao.xml index 0997b2ee1..5d77ae0f7 100644 --- a/src/main/java/com/nis/web/dao/configuration/AppMultiFeatureCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/AppMultiFeatureCfgDao.xml @@ -115,6 +115,9 @@ + + + @@ -204,7 +207,7 @@ r.ATTRIBUTE,r.LABLE,r.AREA_EFFECTIVE_IDS,r.FUNCTION_ID,r.CFG_TYPE,r.CFG_REGION_CODE, r.DISTRICT,r.CFG_KEYWORDS,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN,r.DO_LOG, r.ver,r.ihl,r.tos,r.total_length,r.flags,r.fragment_offset,r.protocol,r.icmp_type,r.icmp_code,r.icmp_identifier, - r.header_type + r.header_type,r.payload_offset,r.payload_size,r.payload_packet_direction @@ -540,7 +543,8 @@ SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY, ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE, DISTRICT,CFG_KEYWORDS,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN,DO_LOG,user_region1,user_region2,user_region3,user_region4,user_region5, - ver,ihl,tos,total_length,flags,fragment_offset,protocol,icmp_type,icmp_code,icmp_identifier,header_type + ver,ihl,tos,total_length,flags,fragment_offset,protocol,icmp_type,icmp_code,icmp_identifier,header_type, + payload_offset,payload_size,payload_packet_direction )values ( , #{cfgType,jdbcType=VARCHAR},#{cfgRegionCode,jdbcType=INTEGER}, @@ -550,7 +554,8 @@ #{userRegion3,jdbcType=VARCHAR},#{userRegion4,jdbcType=VARCHAR},#{userRegion5,jdbcType=VARCHAR}, #{ver,jdbcType=VARCHAR},#{ihl,jdbcType=VARCHAR},#{tos,jdbcType=VARCHAR},#{totalLength,jdbcType=VARCHAR}, #{flags,jdbcType=VARCHAR},#{fragmentOffset,jdbcType=VARCHAR},#{protocol,jdbcType=VARCHAR},#{icmpType,jdbcType=VARCHAR}, - #{icmpCode,jdbcType=VARCHAR},#{icmpIdentifier,jdbcType=VARCHAR},#{headerType,jdbcType=VARCHAR} + #{icmpCode,jdbcType=VARCHAR},#{icmpIdentifier,jdbcType=VARCHAR},#{headerType,jdbcType=VARCHAR}, + #{payloadOffset,jdbcType=INTEGER},#{payloadSize,jdbcType=INTEGER},#{payloadPacketDirection,jdbcType=VARCHAR} ) @@ -562,7 +567,8 @@ SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY, ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE, DISTRICT,CFG_KEYWORDS,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN,DO_LOG,user_region1,user_region2,user_region3,user_region4,user_region5, - ver,ihl,tos,total_length,flags,fragment_offset,protocol,icmp_type,icmp_code,icmp_identifier,header_type + ver,ihl,tos,total_length,flags,fragment_offset,protocol,icmp_type,icmp_code,icmp_identifier,header_type, + payload_offset,payload_size,payload_packet_direction )values ( , #{cfgType,jdbcType=VARCHAR},#{cfgRegionCode,jdbcType=INTEGER}, @@ -572,7 +578,8 @@ #{userRegion3,jdbcType=VARCHAR},#{userRegion4,jdbcType=VARCHAR},#{userRegion5,jdbcType=VARCHAR}, #{ver,jdbcType=VARCHAR},#{ihl,jdbcType=VARCHAR},#{tos,jdbcType=VARCHAR},#{totalLength,jdbcType=VARCHAR}, #{flags,jdbcType=VARCHAR},#{fragmentOffset,jdbcType=VARCHAR},#{protocol,jdbcType=VARCHAR},#{icmpType,jdbcType=VARCHAR}, - #{icmpCode,jdbcType=VARCHAR},#{icmpIdentifier,jdbcType=VARCHAR},#{headerType,jdbcType=VARCHAR} + #{icmpCode,jdbcType=VARCHAR},#{icmpIdentifier,jdbcType=VARCHAR},#{headerType,jdbcType=VARCHAR}, + #{payloadOffset,jdbcType=INTEGER},#{payloadSize,jdbcType=INTEGER},#{payloadPacketDirection,jdbcType=VARCHAR} ) diff --git a/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java b/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java index f34f8a9d8..a6a294e52 100644 --- a/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java @@ -100,7 +100,14 @@ public class AppMultiFeatureCfgService extends BaseService { if(entity.getStrList()!=null){ for(AppStringFeatureCfg cfg:entity.getStrList()){ if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); + if(cfg.getExprType()==null){ + if(cfg.getCfgKeywords().contains(Constants.KEYWORD_EXPR)){ + cfg.setExprType(1);//与表达式 + }else{ + cfg.setExprType(0);//无表达式 + } + } appMultiFeatureCfgDao.insertAppStringFeatureCfg(cfg); } @@ -108,8 +115,8 @@ public class AppMultiFeatureCfgService extends BaseService { } if(entity.getComplexList()!=null){ for(AppComplexFeatureCfg cfg:entity.getComplexList()){ - if(StringUtils.isNotBlank(cfg.getDistrict()) && cfg.getDistrict().equals("L3_header")){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + if(StringUtils.isNotBlank(cfg.getDistrict()) && (cfg.getDistrict().equals("L3_header_IP")||cfg.getDistrict().equals("L3_header_ICMP"))){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); cfg.setIsHexbin(1); cfg.setIsCaseInsenstive(0); cfg.setExprType(3); @@ -117,9 +124,28 @@ public class AppMultiFeatureCfgService extends BaseService { this.setL3HeaderKeyword(cfg); appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); - }else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + }else if(StringUtils.isNotBlank(cfg.getDistrict()) && cfg.getDistrict().equals("Payload") && cfg.getExprType()==3){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); + cfg.setIsHexbin(1); + cfg.setIsCaseInsenstive(0); + cfg.setExprType(3); + cfg.setMatchMethod(0); cfg.setHeaderType(null); + //设置payload特征的偏移量表达之关键字字符串 + cfg.setCfgKeywords(cfg.getPayloadOffset()+"-"+cfg.getCfgKeywords().length()/2+":"+cfg.getCfgKeywords()); + appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); + + }else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); + cfg.setHeaderType(null); + if(cfg.getExprType()==null){ + if(cfg.getCfgKeywords().contains(Constants.KEYWORD_EXPR)){ + cfg.setExprType(1);//与表达式 + }else{ + cfg.setExprType(0);//无表达式 + } + } + appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); } @@ -161,15 +187,22 @@ public class AppMultiFeatureCfgService extends BaseService { if(entity.getStrList()!=null){ for(AppStringFeatureCfg cfg:entity.getStrList()){ if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); + if(cfg.getExprType()==null){ + if(cfg.getCfgKeywords().contains(Constants.KEYWORD_EXPR)){ + cfg.setExprType(1);//与表达式 + }else{ + cfg.setExprType(0);//无表达式 + } + } appMultiFeatureCfgDao.insertAppStringFeatureCfg(cfg); } } } if(entity.getComplexList()!=null){ for(AppComplexFeatureCfg cfg:entity.getComplexList()){ - if(StringUtils.isNotBlank(cfg.getDistrict()) && cfg.getDistrict().equals("L3_header")){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + if(StringUtils.isNotBlank(cfg.getDistrict()) && (cfg.getDistrict().equals("L3_header_IP")||cfg.getDistrict().equals("L3_header_ICMP"))){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); cfg.setIsHexbin(1); cfg.setIsCaseInsenstive(0); cfg.setExprType(3); @@ -177,9 +210,27 @@ public class AppMultiFeatureCfgService extends BaseService { this.setL3HeaderKeyword(cfg); appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); - }else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ - BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"}); + }else if(StringUtils.isNotBlank(cfg.getDistrict()) && cfg.getDistrict().equals("Payload") && cfg.getExprType()==3){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); + cfg.setIsHexbin(1); + cfg.setIsCaseInsenstive(0); + cfg.setExprType(3); + cfg.setMatchMethod(0); cfg.setHeaderType(null); + //设置payload特征的偏移量表达之关键字字符串 + cfg.setCfgKeywords(cfg.getPayloadOffset()+"-"+cfg.getCfgKeywords().length()/2+":"+cfg.getCfgKeywords()); + appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); + + }else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ + BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType","exprType","matchMethod","isHexbin"}); + cfg.setHeaderType(null); + if(cfg.getExprType()==null){ + if(cfg.getCfgKeywords().contains(Constants.KEYWORD_EXPR)){ + cfg.setExprType(1);//与表达式 + }else{ + cfg.setExprType(0);//无表达式 + } + } appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); } } @@ -197,37 +248,38 @@ public class AppMultiFeatureCfgService extends BaseService { public void setL3HeaderKeyword(AppComplexFeatureCfg cfg) { String keyword = ""; - if(cfg.getHeaderType().equals("IP_header")){ - if(StringUtils.isNoneBlank(cfg.getVer())){ + if(cfg.getHeaderType().equals("L3_header_IP")){ + /*if(StringUtils.isNoneBlank(cfg.getVer())){ keyword += "0-3:"+cfg.getVer()+Constants.KEYWORD_EXPR; } if(StringUtils.isNotBlank(cfg.getIhl())){ keyword += "4-7:"+cfg.getIhl()+Constants.KEYWORD_EXPR; - } + }*/ if(StringUtils.isNotBlank(cfg.getTos())){ - keyword += "8-15:"+cfg.getTos()+Constants.KEYWORD_EXPR; + keyword += "1-2:"+cfg.getTos()+Constants.KEYWORD_EXPR; } if(StringUtils.isNotBlank(cfg.getTotalLength())){ - keyword += "16-31:"+cfg.getTotalLength()+Constants.KEYWORD_EXPR; - } - if(StringUtils.isNotBlank(cfg.getFlags())){ - keyword += "48-50:"+cfg.getFlags()+Constants.KEYWORD_EXPR; - } - if(StringUtils.isNotBlank(cfg.getFragmentOffset())){ - keyword += "56-63:"+cfg.getFragmentOffset()+Constants.KEYWORD_EXPR; + keyword += "2-4:"+cfg.getTotalLength()+Constants.KEYWORD_EXPR; } if(StringUtils.isNotBlank(cfg.getProtocol())){ - keyword += "72-79:"+cfg.getProtocol()+Constants.KEYWORD_EXPR; + keyword += "9-10:"+cfg.getProtocol()+Constants.KEYWORD_EXPR; } + if(StringUtils.isNotBlank(cfg.getFragmentOffset())){//记录IP头的客户端IP + keyword += "12-16:"+cfg.getFragmentOffset()+Constants.KEYWORD_EXPR; + } + if(StringUtils.isNotBlank(cfg.getFlags())){//记录IP头的服务端IP + keyword += "16-20:"+cfg.getFlags()+Constants.KEYWORD_EXPR; + } + }else{ if(StringUtils.isNoneBlank(cfg.getIcmpType())){ - keyword += "0-7:"+cfg.getIcmpType()+Constants.KEYWORD_EXPR; + keyword += "0-1:"+cfg.getIcmpType()+Constants.KEYWORD_EXPR; } if(StringUtils.isNotBlank(cfg.getIcmpCode())){ - keyword += "8-15:"+cfg.getIcmpCode()+Constants.KEYWORD_EXPR; + keyword += "1-2:"+cfg.getIcmpCode()+Constants.KEYWORD_EXPR; } if(StringUtils.isNotBlank(cfg.getIcmpIdentifier())){ - keyword += "32-47:"+cfg.getIcmpIdentifier()+Constants.KEYWORD_EXPR; + keyword += "4-6:"+cfg.getIcmpIdentifier()+Constants.KEYWORD_EXPR; } } keyword=keyword.substring(0,keyword.lastIndexOf(Constants.KEYWORD_EXPR)); @@ -289,9 +341,44 @@ public class AppMultiFeatureCfgService extends BaseService { cfg.setTableName(AppComplexFeatureCfg.getTablename()); appMultiFeatureCfgDao.auditCfg(cfg); if(isAudit==1){ + //如果是payload特征,需要判断匹配区域是否为Payload,并且判断包大小或者本包方向,如果不为空,需要创建域配置 + if(entity.getServiceId().equals(1025)){//app payload特征 + for(AppComplexFeatureCfg c:complexList){ + if(c.getDistrict().equals("Payload")){ + //payload特征的payloadSize,payloadPacketDirection两个参数各自为单独的域配置下发 + if(c.getPayloadSize()!=null){ + AppComplexFeatureCfg payloadSizeCfg = new AppComplexFeatureCfg(); + BeanUtils.copyProperties(c, payloadSizeCfg, new String[]{"cfgId"}); + payloadSizeCfg.setCfgKeywords(c.getPayloadSize().toString()); + payloadSizeCfg.setCfgType("APP_PAYLOAD_SIZE");//综合服务前端redis表名 + payloadSizeCfg.setDistrict(null); + payloadSizeCfg.setExprType(0);; + payloadSizeCfg.setMatchMethod(3); + payloadSizeCfg.setIsHexbin(0); + complexList.add(payloadSizeCfg); + } + if(c.getPayloadPacketDirection()!=null){ + AppComplexFeatureCfg packetDirectionCfg = new AppComplexFeatureCfg(); + BeanUtils.copyProperties(c, packetDirectionCfg, new String[]{"cfgId"}); + packetDirectionCfg.setCfgKeywords(c.getPayloadPacketDirection().toString()); + packetDirectionCfg.setCfgType("APP_PKT_SEQ");//综合服务前端redis表名 + packetDirectionCfg.setDistrict(null); + packetDirectionCfg.setExprType(0);; + packetDirectionCfg.setMatchMethod(3); + packetDirectionCfg.setIsHexbin(0); + complexList.add(packetDirectionCfg); + } + } + } + } + Map map = cfgConvert(strRegionList,complexList,2,entity,groupRelationList); groupRelationList=map.get("groupList"); strRegionList=map.get("dstList"); + + + + } } List numCfgList = appMultiFeatureCfgDao.getAppTcpCfg(entity.getCompileId(),entity.getFunctionId(),null); diff --git a/src/main/resources/sql/20190113/update_app_paylload_feature_dict.sql b/src/main/resources/sql/20190113/update_app_paylload_feature_dict.sql new file mode 100644 index 000000000..9875f6bd2 --- /dev/null +++ b/src/main/resources/sql/20190113/update_app_paylload_feature_dict.sql @@ -0,0 +1,64 @@ +-- ޸app payloadֵ +UPDATE `function_region_dict` SET `dict_id`='212', `function_id`='563', `config_district`='Payload,L2_header,L3_header_IP,L3_header_ICMP', `config_region_code`='3', `config_region_value`='APP_PAYLOAD', `config_desc`='APPغ', `is_valid`='1', `is_maat`='1', `region_type`='3', `creator_id`=NULL, `create_time`='2018-09-21 19:29:46', `editor_id`=NULL, `edit_time`='2018-09-21 19:29:48', `config_service_type`='', `config_expr_type`='0,1,3', `config_match_method`='0,1,2,3', `config_ip_type`='', `config_hex`='0,1,2', `config_multi_keywords`='1', `config_ip_pattern`='', `config_port_pattern`='', `config_direction`='', `config_protocol`='', `config_ip_port_show`='', `config_region_sort`='2', `is_import`='0' WHERE (`dict_id`='212'); +UPDATE `function_region_dict` SET `dict_id`='213', `function_id`='563', `config_district`='Payload,L2_header,L3_header_IP,L3_header_ICMP', `config_region_code`='4', `config_region_value`='APP_PAYLOAD', `config_desc`='APPغ', `is_valid`='1', `is_maat`='1', `region_type`='3', `creator_id`=NULL, `create_time`='2018-09-21 19:30:16', `editor_id`=NULL, `edit_time`='2018-09-21 19:30:20', `config_service_type`='', `config_expr_type`='0,1,3', `config_match_method`='0,1,2,3', `config_ip_type`='', `config_hex`='0,1,2', `config_multi_keywords`='1', `config_ip_pattern`='', `config_port_pattern`='', `config_direction`='', `config_protocol`='', `config_ip_port_show`='', `config_region_sort`='3', `is_import`='0' WHERE (`dict_id`='213'); +UPDATE `function_region_dict` SET `dict_id`='215', `function_id`='563', `config_district`='Payload,L2_header,L3_header,C2S_session_size,S2C_session_size', `config_region_code`='5', `config_region_value`='APP_PAYLOAD', `config_desc`='APPغ', `is_valid`='0', `is_maat`='1', `region_type`='3', `creator_id`=NULL, `create_time`='2018-09-21 19:30:16', `editor_id`=NULL, `edit_time`='2018-09-21 19:30:20', `config_service_type`='', `config_expr_type`='0,1', `config_match_method`='0,1,2,3', `config_ip_type`='', `config_hex`='0,1,2', `config_multi_keywords`='1', `config_ip_pattern`='', `config_port_pattern`='', `config_direction`='', `config_protocol`='', `config_ip_port_show`='', `config_region_sort`='4', `is_import`='0' WHERE (`dict_id`='215'); + +-- ӱʽֵĿ +INSERT INTO `sys_data_dictionary_item` ( `item_code`, `item_value`, `item_desc`, `item_sort`, `status`, `type`, `dictionary_id`) VALUES ('3', 'offset_expression', 'ƫƱʽ', '3', '1', '1', '84'); + +--ؽapp ַͨ +drop table app_complex_feature_cfg; +CREATE TABLE `app_complex_feature_cfg` ( + `cfg_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '', + `district` varchar(128) NOT NULL, + `cfg_keywords` varchar(2048) NOT NULL, + `app_code` int(11) NOT NULL, + `behav_code` int(11) DEFAULT NULL, + `spec_service_id` varchar(255) NOT NULL COMMENT 'specific_service_cfg .spec_service_id', + `cfg_desc` varchar(128) DEFAULT NULL, + `action` int(11) NOT NULL, + `is_valid` int(11) NOT NULL, + `is_audit` int(11) NOT NULL, + `creator_id` int(11) NOT NULL COMMENT 'sys_user.id', + `create_time` datetime NOT NULL, + `editor_id` int(11) DEFAULT NULL COMMENT 'sys_user.id', + `edit_time` datetime DEFAULT NULL, + `auditor_id` int(11) DEFAULT NULL COMMENT 'sys_user.id', + `audit_time` datetime DEFAULT NULL, + `service_id` int(11) NOT NULL COMMENT 'ҵid', + `request_id` int(11) NOT NULL COMMENT 'request_info.id', + `compile_id` int(11) NOT NULL, + `is_area_effective` int(11) NOT NULL DEFAULT 0, + `classify` varchar(128) DEFAULT NULL, + `attribute` varchar(128) DEFAULT NULL, + `lable` varchar(128) DEFAULT NULL, + `area_effective_ids` varchar(1024) DEFAULT NULL, + `function_id` int(11) NOT NULL, + `cfg_type` varchar(64) NOT NULL DEFAULT '', + `cfg_region_code` int(11) NOT NULL, + `expr_type` int(11) NOT NULL DEFAULT 0 COMMENT '0ޱʽ1ʽ', + `match_method` int(11) NOT NULL DEFAULT 3 COMMENT 'expr_type:0ʱ壬00Ӵƥ䣻1ƥ䣻2ƥ䣻3ȫƥ', + `is_hexbin` int(11) NOT NULL DEFAULT 0 COMMENT 'ĬΪ0:СдУҷHEX;1:HEXʽ;2:СдУҷHEX', + `do_log` int(11) DEFAULT NULL, + `user_region1` varchar(1024) DEFAULT NULL COMMENT 'ԤԶ1', + `user_region2` varchar(1024) DEFAULT NULL COMMENT 'ԤԶ2', + `user_region3` varchar(1024) DEFAULT NULL COMMENT 'ԤԶ3', + `user_region4` varchar(1024) DEFAULT NULL COMMENT 'ԤԶ4', + `user_region5` varchar(1024) DEFAULT NULL COMMENT 'ԤԶ5', + `header_type` varchar(16) DEFAULT '', + `ver` varchar(4) DEFAULT '', + `ihl` varchar(4) DEFAULT '', + `tos` varchar(16) DEFAULT '', + `total_length` varchar(16) DEFAULT '', + `flags` varchar(32) DEFAULT '', + `fragment_offset` varchar(32) DEFAULT '', + `protocol` varchar(32) DEFAULT '', + `icmp_type` varchar(32) DEFAULT '', + `icmp_code` varchar(32) DEFAULT '', + `icmp_identifier` varchar(32) DEFAULT '', + `payload_offset` int(11) DEFAULT NULL COMMENT 'payloadƫ', + `payload_size` int(11) DEFAULT NULL COMMENT 'payloadС', + `payload_packet_direction` varchar(8) DEFAULT NULL COMMENT 'payload', + PRIMARY KEY (`cfg_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC; + diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appMultiFeatureCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appMultiFeatureCfgForm.jsp index 9e53339fa..37b1f681a 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appMultiFeatureCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appMultiFeatureCfgForm.jsp @@ -9,9 +9,9 @@ $(function(){ $("#serviceId").val($(this).attr("serviceId")); }); $(".district").on("change", function() { - if($(this).val()=='L3_header'){ + if($(this).val()=='L3_header_IP'||$(this).val()=='L3_header_ICMP'){ $(this).parents(".boxSolid").find(".keywords").addClass("hidden"); - $(this).parents(".boxSolid").find(".L3_header").removeClass("hidden"); + $(this).parents(".boxSolid").find(".L3_header").find("input[name$='headerType']").val($(this).val()); $(this).parents(".boxSolid").find(".matchMethod").addClass("hidden"); $(this).parents(".boxSolid").find(".exprType").addClass("hidden"); $(this).parents(".boxSolid").find("input:radio[name$='isHex'][value=1]").prop("checked",true); @@ -21,7 +21,7 @@ $(function(){ $(this).parents(".boxSolid").find(".headerType").change(); }else{ $(this).parents(".boxSolid").find(".keywords").removeClass("hidden"); - $(this).parents(".boxSolid").find(".L3_header").addClass("hidden"); + $(this).parents(".boxSolid").find(".L3_header").find("input[name$='headerType']").val(""); $(this).parents(".boxSolid").find(".matchMethod").removeClass("hidden"); $(this).parents(".boxSolid").find(".exprType").removeClass("hidden"); $(this).parents(".boxSolid").find(".IP_header").addClass("hidden"); @@ -32,7 +32,7 @@ $(function(){ }); $(".headerType").on("change", function() { - if($(this).val()=='IP_header'){ + if($(this).val()=='L3_header_IP'){ $(this).parents(".boxSolid").find(".ICMP_header").addClass("hidden"); $(this).parents(".boxSolid").find(".IP_header").removeClass("hidden"); }else{ @@ -40,10 +40,24 @@ $(function(){ $(this).parents(".boxSolid").find(".ICMP_header").removeClass("hidden"); } }); + $("input:radio[name$='exprType']").on("change",function(){ + var exprType = $(this).val(); + changeKeywordFormate(exprType,$(this)); + }); + $(".boxSolid:visible").find(".district").each(function(){ $(this).change(); }); $("#serviceId").val($(".action:checked").attr("serviceId")); + + if($("#serviceId").val()==1025 && $("#cfgId").val()!=null){ + $("input:radio[name$='exprType']").each(function(){ + if($(this).attr("checked") && $(this).val()==3){ + changeKeywordFormate($(this).val(),$(this)); + } + }); + } + $("#cfgFrom").validate({ errorPlacement: function(error,element){ if($(element).parents().hasClass("tagsinput")){ @@ -60,10 +74,9 @@ $(function(){ return; } $(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){ - if($(this).val()==''){ var length = 0; - $(this).parents(".boxSolid").find(".l3_header_prop").each(function(){ + $(this).parents(".boxSolid").find(".l3_header_prop:visible").each(function(){ if($(this).val()!=''){ length += 1; } @@ -82,7 +95,7 @@ $(function(){ }else{ var length = 0; - $(this).parents(".boxSolid").find(".l3_header_prop").each(function(){ + $(this).parents(".boxSolid").find(".l3_header_prop:visible").each(function(){ if($(this).val()!=''){ length += 1; } @@ -139,7 +152,13 @@ $(function(){ $(".disabled").each(function(){ $(this).remove(); }); - $("input[name$='exprType']").attr("disabled",false); + + if($("input[name$='exprType']").attr("disabled")){ + $("input[name$='exprType']").attr("disabled",false); + } + /* $(".boxSolid:visible").each(function(){ + alert($(this).find("select[name$='matchMethod'] option[selected]").val()); + }) */ $("#appCode").val($("#specServiceIdId").val()); loading('onloading...'); form.submit(); @@ -172,6 +191,36 @@ var delContent = function(contentClassName, addBtnClassName) { }); */ $("." + addBtnClassName).removeClass("hidden"); } +function changeKeywordFormate(exprType,obj){ + if(exprType==3){ + var keywordObj = $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']"); + if($(keywordObj).val().indexOf("***and***")>0){ + $(keywordObj).val($(keywordObj).val().split('***and***').join('')); + } + if($(keywordObj).val().indexOf(":")>0){ + $(keywordObj).val($(keywordObj).val().substr($(keywordObj).val().indexOf(":")+1)); + } + + //$(this).parents(".boxSolid").find(".keywords").addClass("hidden"); + //$(this).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").attr("id").replace("tags","multipKeywords"); + $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").css("display","block"); + $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").addClass("hexCheck"); + $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").next("div").addClass("hidden"); + $(obj).parents(".boxSolid").find(".offsetFeature").removeClass("hidden"); + $(obj).parents(".boxSolid").find("input:radio[name$='isHex'][value=1]").prop("checked",true); + $(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive'][value=0]").prop("checked",true); + $(obj).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",true); + $(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",true); + }else{ + //$(this).parents(".boxSolid").find(".keywords").removeClass("hidden"); + //$(this).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").attr("id").replace("multipKeywords","tags"); + $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").css("display","none"); + $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").next("div").removeClass("hidden"); + $(obj).parents(".boxSolid").find(".offsetFeature").addClass("hidden"); + $(obj).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",false); + $(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",false); + } +} @@ -208,7 +257,7 @@ var delContent = function(contentClassName, addBtnClassName) {
- + @@ -355,7 +404,7 @@ var delContent = function(contentClassName, addBtnClassName) { - <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> + <%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
- <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> + <%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
@@ -380,7 +429,7 @@ var delContent = function(contentClassName, addBtnClassName) { - <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> + <%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
@@ -407,7 +456,7 @@ var delContent = function(contentClassName, addBtnClassName) {
- <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> + <%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%> @@ -421,7 +470,7 @@ var delContent = function(contentClassName, addBtnClassName) { @@ -434,7 +483,7 @@ var delContent = function(contentClassName, addBtnClassName) { - <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> + <%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appSubFeatureList.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appSubFeatureList.jsp index bee4cc0c3..2c94ed0fe 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appSubFeatureList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appSubFeatureList.jsp @@ -257,9 +257,9 @@
- +
-
+ <%--
@@ -268,7 +268,7 @@
-
+
--%>
@@ -283,24 +283,24 @@
- +
- +
- +
- +
@@ -319,11 +319,20 @@
- +
- +
@@ -333,26 +342,38 @@
- +
-
-
-
- - +
+
+
+ + +
-
+ +
+
+
+ + ${cfg.payloadOffset } +
+
+
+
diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp index 54d542844..fb6bc5458 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp @@ -72,7 +72,9 @@
diff --git a/src/main/webapp/WEB-INF/views/log/ntc/connRecordLogList.jsp b/src/main/webapp/WEB-INF/views/log/ntc/connRecordLogList.jsp index 666cffa9b..c0ef9e90b 100644 --- a/src/main/webapp/WEB-INF/views/log/ntc/connRecordLogList.jsp +++ b/src/main/webapp/WEB-INF/views/log/ntc/connRecordLogList.jsp @@ -266,6 +266,7 @@
" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder=""> + @@ -288,6 +290,7 @@
+ value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
@@ -87,7 +87,7 @@ code="end_date" />
+ value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp index 9f8f21808..c4953af32 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp @@ -43,7 +43,7 @@
+ value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setStartTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
@@ -52,7 +52,7 @@
+ value="" onclick="WdatePicker({onpicked:function(){this.onchange()},dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true,maxDate:'#F{\'new Date()\'}'});" onchange="setEndTime('#beginDate','#endDate',1,'d','yyyy-MM-dd hh:mm:ss',false)"/>
From 19ee1fd2be506b78c11d474f56f3aefc7aeca69d Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Mon, 14 Jan 2019 09:32:12 +0800 Subject: [PATCH 10/45] =?UTF-8?q?DDOS=E3=80=81Proxy=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=A2=9E=E5=8A=A0doLog=E5=B1=9E=E6=80=A7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ComplexStringAllNotDoLogTemplate.java | 60 +++++++++++++++++++ .../template/DdosIpTemplate.java | 6 +- .../DomainInterceptMonitTemplate.java | 2 +- .../DomainInterceptRateLimitTemplate.java | 2 +- .../template/DomainInterceptTemplate.java | 2 +- .../HttpsRedirectComplexTemplate.java | 4 +- .../template/HttpsRedirectIpTemplate.java | 4 +- .../template/HttpsRedirectTemplate.java | 4 +- .../template/HttpsRejectComplexTemplate.java | 4 +- .../template/HttpsRejectIpTemplate.java | 4 +- .../template/HttpsRejectTemplate.java | 4 +- .../template/HttpsReplaceComplexTemplate.java | 6 +- .../template/HttpsReplaceIpTemplate.java | 6 +- .../template/HttpsReplaceTemplate.java | 6 +- .../template/IpRateLimitTemplate.java | 2 +- .../template/StringAllNotDoLogTemplate.java | 52 ++++++++++++++++ .../excel/thread/CheckIpFormatThread.java | 5 ++ .../excel/thread/CheckStringFormatThread.java | 5 ++ .../nis/web/controller/BaseController.java | 36 +++++++++-- .../configuration/ntc/IpController.java | 54 ++++++++++++----- 20 files changed, 220 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/nis/domain/configuration/template/ComplexStringAllNotDoLogTemplate.java create mode 100644 src/main/java/com/nis/domain/configuration/template/StringAllNotDoLogTemplate.java diff --git a/src/main/java/com/nis/domain/configuration/template/ComplexStringAllNotDoLogTemplate.java b/src/main/java/com/nis/domain/configuration/template/ComplexStringAllNotDoLogTemplate.java new file mode 100644 index 000000000..702f0f0cd --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/ComplexStringAllNotDoLogTemplate.java @@ -0,0 +1,60 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * @Description: excel导入增强字符串类配置 + */ +public class ComplexStringAllNotDoLogTemplate extends BasicTemplate{ + private String cfgDesc; + + private String district; + private String cfgKeywords; + private Integer matchMethod ; + private Integer isHex; + private Integer isCaseInsenstive; + + @ExcelField(title="config_describe",align=2,sort=1) + public String getCfgDesc() { + return cfgDesc; + } + public void setCfgDesc(String cfgDesc) { + this.cfgDesc = cfgDesc; + } + @ExcelField(title="district",sort=11) + public String getDistrict() { + return district; + } + public void setDistrict(String district) { + this.district = district; + } + @ExcelField(title="key_word",sort=12) + public String getCfgKeywords() { + return cfgKeywords; + } + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } + @ExcelField(title="match_method",dictType="MATCH_METHOD",sort=14) + public Integer getMatchMethod() { + return matchMethod; + } + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } + @ExcelField(title="is_hex",dictType="IS_HEX",sort=15) + public Integer getIsHex() { + return isHex; + } + public void setIsHex(Integer isHex) { + this.isHex = isHex; + } + @ExcelField(title="is_case_insenstive",dictType="CASE_INSENSTIVE",sort=16) + public Integer getIsCaseInsenstive() { + return isCaseInsenstive; + } + public void setIsCaseInsenstive(Integer isCaseInsenstive) { + this.isCaseInsenstive = isCaseInsenstive; + } + +} diff --git a/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java index cd7167df6..ec4d5a01d 100644 --- a/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DdosIpTemplate.java @@ -6,21 +6,21 @@ public class DdosIpTemplate extends IpAllTemplate { private String antiddosProtocol; private Long bpsThreadshold; private Long ppsThreadshold; - @ExcelField(title="antiddos_protocol",align=2,sort=2) + @ExcelField(title="antiddos_protocol",align=2,sort=3) public String getAntiddosProtocol() { return antiddosProtocol; } public void setAntiddosProtocol(String antiddosProtocol) { this.antiddosProtocol = antiddosProtocol; } - @ExcelField(title="bps_threadshold",align=2,sort=3) + @ExcelField(title="bps_threadshold",align=2,sort=4) public Long getBpsThreadshold() { return bpsThreadshold; } public void setBpsThreadshold(Long bpsThreadshold) { this.bpsThreadshold = bpsThreadshold; } - @ExcelField(title="pps_threadshold",align=2,sort=4) + @ExcelField(title="pps_threadshold",align=2,sort=5) public Long getPpsThreadshold() { return ppsThreadshold; } diff --git a/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java index e99cf60ed..5d75c9519 100644 --- a/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DomainInterceptMonitTemplate.java @@ -7,7 +7,7 @@ import com.nis.util.excel.ExcelField; * @author dell * */ -public class DomainInterceptMonitTemplate extends StringAllTemplate{ +public class DomainInterceptMonitTemplate extends StringAllNotDoLogTemplate{ private String userRegion5; private String cfgKeywords; diff --git a/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java index 62426cef6..5d3f222e4 100644 --- a/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DomainInterceptRateLimitTemplate.java @@ -7,7 +7,7 @@ import com.nis.util.excel.ExcelField; * @author dell * */ -public class DomainInterceptRateLimitTemplate extends StringAllTemplate{ +public class DomainInterceptRateLimitTemplate extends StringAllNotDoLogTemplate{ private String userRegion2; private String cfgKeywords; diff --git a/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java b/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java index 8e81e44fb..39f90bd86 100644 --- a/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DomainInterceptTemplate.java @@ -2,7 +2,7 @@ package com.nis.domain.configuration.template; import com.nis.util.excel.ExcelField; -public class DomainInterceptTemplate extends StringAllTemplate{ +public class DomainInterceptTemplate extends StringAllNotDoLogTemplate{ private String cfgKeywords; @ExcelField(title="domain_name",sort=11) diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsRedirectComplexTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsRedirectComplexTemplate.java index 8e6112b85..0d9b70fb5 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsRedirectComplexTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsRedirectComplexTemplate.java @@ -12,7 +12,7 @@ public class HttpsRedirectComplexTemplate extends ComplexStringAllTemplate{ private String userRegion1;// 重定向应答码 private String userRegion2;// 重定向URL - @ExcelField(title="redirect_response_code",dictType="REDIRECT_RESPONSE_CODE",align=2,sort=2) + @ExcelField(title="redirect_response_code",dictType="REDIRECT_RESPONSE_CODE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -21,7 +21,7 @@ public class HttpsRedirectComplexTemplate extends ComplexStringAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="redirect_url",align=2,sort=3) + @ExcelField(title="redirect_url",align=2,sort=4) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsRedirectIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsRedirectIpTemplate.java index 3cf44b757..27e6ca992 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsRedirectIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsRedirectIpTemplate.java @@ -12,7 +12,7 @@ public class HttpsRedirectIpTemplate extends IpAllTemplate{ private String userRegion1;// 重定向应答码 private String userRegion2;// 重定向URL - @ExcelField(title="redirect_response_code",dictType="REDIRECT_RESPONSE_CODE",align=2,sort=2) + @ExcelField(title="redirect_response_code",dictType="REDIRECT_RESPONSE_CODE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -21,7 +21,7 @@ public class HttpsRedirectIpTemplate extends IpAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="redirect_url",align=2,sort=3) + @ExcelField(title="redirect_url",align=2,sort=4) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsRedirectTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsRedirectTemplate.java index 0a2ae6aa0..bbe0ba8b2 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsRedirectTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsRedirectTemplate.java @@ -12,7 +12,7 @@ public class HttpsRedirectTemplate extends StringAllTemplate{ private String userRegion1;// 重定向应答码 private String userRegion2;// 重定向URL - @ExcelField(title="redirect_response_code",dictType="REDIRECT_RESPONSE_CODE",align=2,sort=2) + @ExcelField(title="redirect_response_code",dictType="REDIRECT_RESPONSE_CODE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -21,7 +21,7 @@ public class HttpsRedirectTemplate extends StringAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="redirect_url",align=2,sort=3) + @ExcelField(title="redirect_url",align=2,sort=4) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsRejectComplexTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsRejectComplexTemplate.java index 72f569dda..5b0d9115d 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsRejectComplexTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsRejectComplexTemplate.java @@ -12,7 +12,7 @@ public class HttpsRejectComplexTemplate extends ComplexStringAllTemplate{ private String userRegion1;// 应答码 private String userRegion2;// 响应内容 - @ExcelField(title="response_code",dictType="RESPONSE_CODE",align=2,sort=2) + @ExcelField(title="response_code",dictType="RESPONSE_CODE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -21,7 +21,7 @@ public class HttpsRejectComplexTemplate extends ComplexStringAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="response_content",align=2,sort=3) + @ExcelField(title="response_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsRejectIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsRejectIpTemplate.java index d02510027..d509e36c2 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsRejectIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsRejectIpTemplate.java @@ -12,7 +12,7 @@ public class HttpsRejectIpTemplate extends IpAllTemplate{ private String userRegion1;// 应答码 private String userRegion2;// 响应内容 - @ExcelField(title="response_code",dictType="RESPONSE_CODE",align=2,sort=2) + @ExcelField(title="response_code",dictType="RESPONSE_CODE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -21,7 +21,7 @@ public class HttpsRejectIpTemplate extends IpAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="response_content",align=2,sort=3) + @ExcelField(title="response_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsRejectTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsRejectTemplate.java index 3cb2ffcc0..d581d0f9c 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsRejectTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsRejectTemplate.java @@ -12,7 +12,7 @@ public class HttpsRejectTemplate extends StringAllTemplate{ private String userRegion1;// 应答码 private String userRegion2;// 响应内容 - @ExcelField(title="response_code",dictType="RESPONSE_CODE",align=2,sort=2) + @ExcelField(title="response_code",dictType="RESPONSE_CODE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -21,7 +21,7 @@ public class HttpsRejectTemplate extends StringAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="response_content",align=2,sort=3) + @ExcelField(title="response_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } diff --git a/src/main/java/com/nis/domain/configuration/template/HttpsReplaceComplexTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsReplaceComplexTemplate.java index 18a39ed14..6c2be1638 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsReplaceComplexTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsReplaceComplexTemplate.java @@ -13,7 +13,7 @@ public class HttpsReplaceComplexTemplate extends ComplexStringAllTemplate{ private String userRegion2;// 发现内容 private String userRegion3;// 替换内容 - @ExcelField(title="replace_zone",dictType="CONTROL_REPLACE_ZONE",align=2,sort=2) + @ExcelField(title="replace_zone",dictType="CONTROL_REPLACE_ZONE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -22,7 +22,7 @@ public class HttpsReplaceComplexTemplate extends ComplexStringAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="replaced_content",align=2,sort=3) + @ExcelField(title="replaced_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } @@ -31,7 +31,7 @@ public class HttpsReplaceComplexTemplate extends ComplexStringAllTemplate{ 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/HttpsReplaceIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsReplaceIpTemplate.java index c7a57075b..e9aeee245 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsReplaceIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsReplaceIpTemplate.java @@ -13,7 +13,7 @@ public class HttpsReplaceIpTemplate extends IpAllTemplate{ private String userRegion2;// 发现内容 private String userRegion3;// 替换内容 - @ExcelField(title="replace_zone",dictType="CONTROL_REPLACE_ZONE",align=2,sort=2) + @ExcelField(title="replace_zone",dictType="CONTROL_REPLACE_ZONE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -22,7 +22,7 @@ public class HttpsReplaceIpTemplate extends IpAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="replaced_content",align=2,sort=3) + @ExcelField(title="replaced_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } @@ -31,7 +31,7 @@ public class HttpsReplaceIpTemplate extends IpAllTemplate{ 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/HttpsReplaceTemplate.java b/src/main/java/com/nis/domain/configuration/template/HttpsReplaceTemplate.java index 2a40ee17b..e1a710147 100644 --- a/src/main/java/com/nis/domain/configuration/template/HttpsReplaceTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/HttpsReplaceTemplate.java @@ -13,7 +13,7 @@ public class HttpsReplaceTemplate extends StringAllTemplate{ private String userRegion2;// 发现内容 private String userRegion3;// 替换内容 - @ExcelField(title="replace_zone",dictType="CONTROL_REPLACE_ZONE",align=2,sort=2) + @ExcelField(title="replace_zone",dictType="CONTROL_REPLACE_ZONE",align=2,sort=3) public String getUserRegion1() { return userRegion1; } @@ -22,7 +22,7 @@ public class HttpsReplaceTemplate extends StringAllTemplate{ this.userRegion1 = userRegion1; } - @ExcelField(title="replaced_content",align=2,sort=3) + @ExcelField(title="replaced_content",align=2,sort=4) public String getUserRegion2() { return userRegion2; } @@ -31,7 +31,7 @@ public class HttpsReplaceTemplate extends StringAllTemplate{ 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/IpRateLimitTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpRateLimitTemplate.java index eef1ca2c9..b879ce2a6 100644 --- a/src/main/java/com/nis/domain/configuration/template/IpRateLimitTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/IpRateLimitTemplate.java @@ -6,7 +6,7 @@ import com.nis.util.excel.ExcelField; * EXCEL IP导入限速模板 * */ -public class IpRateLimitTemplate extends IpAllTemplate { +public class IpRateLimitTemplate extends IpAllNotDoLogTemplate { public static String userRegion1="0"; private String userRegion2; @ExcelField(title="ratelimit",dictType="RATE_LIMIT",align=2,sort=2) diff --git a/src/main/java/com/nis/domain/configuration/template/StringAllNotDoLogTemplate.java b/src/main/java/com/nis/domain/configuration/template/StringAllNotDoLogTemplate.java new file mode 100644 index 000000000..f604158c0 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/StringAllNotDoLogTemplate.java @@ -0,0 +1,52 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * @Description: excel导入字符串类配置 + */ +public class StringAllNotDoLogTemplate extends BasicTemplate{ + private String cfgDesc; + + private String cfgKeywords; + private Integer matchMethod ; + private Integer isHex; + private Integer isCaseInsenstive; + + @ExcelField(title="config_describe",align=2,sort=1) + public String getCfgDesc() { + return cfgDesc; + } + public void setCfgDesc(String cfgDesc) { + this.cfgDesc = cfgDesc; + } + @ExcelField(title="key_word",sort=11) + public String getCfgKeywords() { + return cfgKeywords; + } + public void setCfgKeywords(String cfgKeywords) { + this.cfgKeywords = cfgKeywords; + } + @ExcelField(title="match_method",dictType="MATCH_METHOD",sort=13) + public Integer getMatchMethod() { + return matchMethod; + } + public void setMatchMethod(Integer matchMethod) { + this.matchMethod = matchMethod; + } + @ExcelField(title="is_hex",dictType="IS_HEX",sort=14) + public Integer getIsHex() { + return isHex; + } + public void setIsHex(Integer isHex) { + this.isHex = isHex; + } + @ExcelField(title="is_case_insenstive",dictType="CASE_INSENSTIVE",sort=15) + public Integer getIsCaseInsenstive() { + return isCaseInsenstive; + } + public void setIsCaseInsenstive(Integer isCaseInsenstive) { + this.isCaseInsenstive = isCaseInsenstive; + } + +} 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 8e7e1c414..e5f017850 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,11 @@ public class CheckIpFormatThread implements Callable{ errInfo.append(prop.getProperty("config_describe")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":128") + ";"); } + if(regionDict.getFunctionId().equals(200)) { + if(!serviceDict.getAction().equals(1)) { + baseIpCfg.setDoLog(0); + } + } // doLog属性检验 this.validDoLog(baseIpCfg,errInfo); diff --git a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java index b9630ee67..ff770be4d 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckStringFormatThread.java @@ -98,6 +98,11 @@ public class CheckStringFormatThread implements Callable{ errInfo.append(prop.getProperty("config_describe")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":128") + ";"); } + if(regionDict.getFunctionId().equals(200)) { + if(!serviceDict.getAction().equals(1)) { + baseStringCfg.setDoLog(0); + } + } // doLog属性检验 this.validDoLog(baseStringCfg,errInfo); diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 08ddaf608..659bc074c 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -80,6 +80,7 @@ import com.nis.domain.configuration.StringCfgTemplate; import com.nis.domain.configuration.template.AppDomainTemplate; import com.nis.domain.configuration.template.AppPayloadTemplate; import com.nis.domain.configuration.template.AsnIpTemplate; +import com.nis.domain.configuration.template.ComplexStringAllNotDoLogTemplate; import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.DdosIpTemplate; import com.nis.domain.configuration.template.DnsComplexStringTemplate; @@ -106,6 +107,7 @@ 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.StringAllNotDoLogTemplate; import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.configuration.template.TopicWebsiteTemplate; import com.nis.domain.log.BaseLogEntity; @@ -1415,9 +1417,17 @@ public class BaseController { }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 BlockingQueue list = ei.getDataList(HttpsReplaceIpTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,asnGroupInfos, list); - }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(211)){// HTTP(s)白名单 + BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict, null,asnGroupInfos, list); + }else if(regionDict.getFunctionId().equals(200)) {// 拦截策略 + if(serviceDict.getAction().equals(64)) { + BlockingQueue list = ei.getDataList(IpRateLimitTemplate.class ); + ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,asnGroupInfos, list); + }else { + BlockingQueue list = ei.getDataList(IpAllNotDoLogTemplate.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); @@ -1455,6 +1465,9 @@ public class BaseController { }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 BlockingQueue list = ei.getDataList(HttpsReplaceTemplate.class); stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); + }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + BlockingQueue list = ei.getDataList(StringAllNotDoLogTemplate.class); + stringCfgs=this.checkStringCfgMulity(errTip,serviceDict, regionDict, list); }else if(regionDict.getFunctionId().equals(560)){// 主题网站 BlockingQueue list = ei.getDataList(TopicWebsiteTemplate.class); appTopicDomainCfgs=this.checkTopicWebsiteCfgMulity(errTip,serviceDict, regionDict, list); @@ -1477,6 +1490,9 @@ public class BaseController { } else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 BlockingQueue list = ei.getDataList(HttpsReplaceComplexTemplate.class); complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list); + } else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + BlockingQueue list = ei.getDataList(ComplexStringAllNotDoLogTemplate.class); + complexkeywordCfgs = this.checkComplexStringCfgMulity(errTip,serviceDict, regionDict, list); } else if(regionDict.getFunctionId().equals(563)){// APP Payload BlockingQueue list = ei.getDataList(AppPayloadTemplate.class); appComplexFeatureCfgs = this.checkAppComplexFeatureStringCfgMulity(errTip,serviceDict, regionDict, list); @@ -2267,8 +2283,14 @@ public class BaseController { ei.loadInitParams(HttpsRedirectIpTemplate.class, this.getMsgProp(), regionDict, serviceDict); } else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 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(211)){// HTTP(s)白名单 + ei.loadInitParams(IpAllNotDoLogTemplate.class, this.getMsgProp(), regionDict, serviceDict); + } else if(regionDict.getFunctionId().equals(200)){// 拦截策略 + if(serviceDict.getAction().intValue()==64) { + ei.loadInitParams(IpRateLimitTemplate.class, msgProp, regionDict, serviceDict); + }else { + ei.loadInitParams(IpAllNotDoLogTemplate.class, msgProp, regionDict, serviceDict); + } } else if(regionDict.getFunctionId().equals(3)) { // IP白名单 ei.loadInitParams(IpWhitelistTemplate.class, msgProp, regionDict, serviceDict); } else { @@ -2294,6 +2316,8 @@ public class BaseController { ei.loadInitParams(HttpsRedirectTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 ei.loadInitParams(HttpsReplaceTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + ei.loadInitParams(StringAllNotDoLogTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else if(regionDict.getFunctionId().equals(560)){// 主题网站 ei.loadInitParams(TopicWebsiteTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else { @@ -2309,6 +2333,8 @@ public class BaseController { ei.loadInitParams(HttpsRedirectComplexTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 ei.loadInitParams(HttpsReplaceComplexTemplate.class, this.getMsgProp(), regionDict, serviceDict); + }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + ei.loadInitParams(ComplexStringAllNotDoLogTemplate.class, this.getMsgProp(), regionDict, serviceDict); }else if(regionDict.getFunctionId().equals(563)) {// APP Payload ei.loadInitParams(AppPayloadTemplate.class, this.getMsgProp(), regionDict, serviceDict); } else { 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 f36d142fc..079b6b402 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 @@ -32,6 +32,7 @@ import com.nis.domain.configuration.NtcSubscribeIdCfg; import com.nis.domain.configuration.template.AppDomainTemplate; import com.nis.domain.configuration.template.AppPayloadTemplate; import com.nis.domain.configuration.template.AsnIpTemplate; +import com.nis.domain.configuration.template.ComplexStringAllNotDoLogTemplate; import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.DdosIpTemplate; import com.nis.domain.configuration.template.DnsComplexStringTemplate; @@ -58,6 +59,7 @@ 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.SnatTemplate; +import com.nis.domain.configuration.template.StringAllNotDoLogTemplate; import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.configuration.template.TopicWebsiteTemplate; import com.nis.exceptions.MaatConvertException; @@ -382,23 +384,35 @@ public class IpController extends BaseController{ }else if(regionDict.getFunctionId().equals(207)){// HTTP(s)阻断 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsRejectIpTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(208)){// HTTP(s)重定向 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsRedirectIpTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsReplaceIpTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). - write(request,response, fileName).dispose(); - }else if(regionDict.getFunctionId().equals(200) && serviceDict.getAction().equals(64)) {// 拦截策略(IP)限速 - List classList=new ArrayList(); - ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpRateLimitTemplate.class, 2); excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpAllNotDoLogTemplate.class, 2); + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(200)) {// 拦截策略(IP) + if(serviceDict.getAction().equals(64)) { + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,pro,null, IpRateLimitTemplate.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, 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); @@ -438,22 +452,27 @@ public class IpController extends BaseController{ }else if(regionDict.getFunctionId().equals(207)){// HTTP(s)阻断 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsRejectTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(208)){// HTTP(s)重定向 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsRedirectTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsReplaceTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllNotDoLogTemplate.class, 2); + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(560)) {// 主题网站 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, TopicWebsiteTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else{ List classList=new ArrayList(); @@ -473,22 +492,27 @@ public class IpController extends BaseController{ }else if(regionDict.getFunctionId().equals(207)){// HTTP(s)阻断 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsRejectComplexTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(208)){// HTTP(s)重定向 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsRedirectComplexTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(209)){// HTTP(s)替换 List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, HttpsReplaceComplexTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). + write(request,response, fileName).dispose(); + }else if(regionDict.getFunctionId().equals(211)){// HTTP(s)白名单 + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, ComplexStringAllNotDoLogTemplate.class, 2); + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else if(regionDict.getFunctionId().equals(563)) {// APP Payload List classList=new ArrayList(); ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, AppPayloadTemplate.class, 2); - excel.setDataList(this.getMsgProp(),classList,null). + excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); }else{ List classList=new ArrayList(); From e7c7a4b960a2e4608ac91fa43a0df3e6a64a43fe Mon Sep 17 00:00:00 2001 From: wangwenrui Date: Mon, 14 Jan 2019 10:52:06 +0800 Subject: [PATCH 11/45] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=EF=BC=9A=201.?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E9=98=BB=E6=96=AD=E8=8C=83=E5=9B=B4=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=AF=BC=E5=87=BA=E6=95=B0=E6=8D=AE=E4=B8=8E=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=B8=8A=E6=98=BE=E7=A4=BA=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=EF=BC=8C=E7=95=8C=E9=9D=A2=E4=B8=8A=E6=98=BE=E7=A4=BA=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E3=80=81=E5=AF=BC=E5=87=BA=E7=9A=84excel=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=98=BE=E7=A4=BA=E4=B8=BA=E5=90=A6=202.=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=B8=8A=E5=AD=98=E5=9C=A8=E6=97=A5=E5=BF=97=E6=80=BB?= =?UTF-8?q?=E9=87=8F=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=AF=BC=E5=87=BA=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=AD=E4=B8=8D=E5=AD=98=E5=9C=A8=203.?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=95=B0=E6=8D=AE=E5=8C=85=E5=90=AB=E5=AD=97?= =?UTF-8?q?=E6=AE=B5blacklist=20option,=E7=95=8C=E9=9D=A2=E4=B8=8A?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/configuration/AppPolicyCfg.java | 12 +++ .../com/nis/domain/configuration/BaseCfg.java | 1 - .../domain/configuration/CfgIndexInfo.java | 10 +- .../java/com/nis/util/ConfigServiceUtil.java | 58 ++++++++++ .../java/com/nis/util/excel/ExportExcel.java | 12 ++- .../com/nis/util/httpclient/ClientUtil.java | 27 +++++ .../nis/web/controller/BaseController.java | 92 +++++++++++++++- .../configuration/AppCfgController.java | 34 +++++- .../BasicProtocolController.java | 45 +++++++- .../EncryptedTunnelBehaviorController.java | 33 +++++- .../ntc/AvContentController.java | 69 +++++++++++- .../configuration/ntc/BgpCfgController.java | 39 ++++++- .../ntc/FileTransferCfgController.java | 66 ++++++++++++ .../configuration/ntc/IpController.java | 39 ++++++- .../configuration/ntc/MailCfgController.java | 35 +++++- .../configuration/ntc/WebsiteController.java | 101 +++++++++++++++++- .../ntc/WhiteListController.java | 37 ++++++- 17 files changed, 692 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/nis/domain/configuration/AppPolicyCfg.java b/src/main/java/com/nis/domain/configuration/AppPolicyCfg.java index a29846ae2..ea261c737 100644 --- a/src/main/java/com/nis/domain/configuration/AppPolicyCfg.java +++ b/src/main/java/com/nis/domain/configuration/AppPolicyCfg.java @@ -53,6 +53,7 @@ public class AppPolicyCfg extends BaseCfg { private String userRegion5; private String configType; + @ExcelField(title="encrypted_tunnel_behavior",sort=5) private String behaviorName; @ExcelField(title="social_app",sort=5) @@ -108,6 +109,9 @@ public class AppPolicyCfg extends BaseCfg { @SerializedName("isHexbin") private Integer isHexbin; + @ExcelField(title="log_total",sort=31) + private Long totalLogs; + private List ipPortList; private IpPortCfg ipPort; private NtcSubscribeIdCfg ntcSubscribeIdCfg; @@ -278,5 +282,13 @@ public class AppPolicyCfg extends BaseCfg { public void setIndexTable(String indexTable) { this.indexTable = indexTable; } + + public Long getTotalLogs() { + return totalLogs; + } + + public void setTotalLogs(Long totalLogs) { + this.totalLogs = totalLogs; + } } diff --git a/src/main/java/com/nis/domain/configuration/BaseCfg.java b/src/main/java/com/nis/domain/configuration/BaseCfg.java index dfbe2285c..9ff914ecd 100644 --- a/src/main/java/com/nis/domain/configuration/BaseCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseCfg.java @@ -263,7 +263,6 @@ public class BaseCfg extends BaseEntity implements Cloneable{ protected Integer doLog = Constants.MAAT_CFG_DOLOG_DEFAULT; @ExcelField(title="do_blacklist",dictType="DO_BLACKLIST",sort=31) protected Integer doBlackList=Constants.MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT; - protected Integer groupId;//仅用于copy属性使用 protected Integer regionId;//仅用于copy属性使用 protected Integer numberRegionGroupId;//仅用于copy属性使用 diff --git a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java index 2a6c8d87a..045267be4 100644 --- a/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java +++ b/src/main/java/com/nis/domain/configuration/CfgIndexInfo.java @@ -84,6 +84,8 @@ public class CfgIndexInfo extends BaseCfg { private String country; private String detail; private List asnKeywords; + @ExcelField(title="log_total",sort=31) + private Long totalLogs; /*private CachePolicyUserRegion cachePolicyUserRegion;//缓存策略用户自定义域参数 @@ -402,5 +404,11 @@ public class CfgIndexInfo extends BaseCfg { this.complexCfg = complexCfg; } - + public Long getTotalLogs() { + return totalLogs; + } + + public void setTotalLogs(Long totalLogs) { + this.totalLogs = totalLogs; + } } diff --git a/src/main/java/com/nis/util/ConfigServiceUtil.java b/src/main/java/com/nis/util/ConfigServiceUtil.java index 8779f74ff..d47f43c14 100644 --- a/src/main/java/com/nis/util/ConfigServiceUtil.java +++ b/src/main/java/com/nis/util/ConfigServiceUtil.java @@ -566,6 +566,64 @@ public class ConfigServiceUtil { } return result; } + + /** + * + * getReport(配置日志总量统计查询) + * (这里描述这个方法适用条件 – 可选) + * @param type 1- 配置命中总量业务2- 配置报表业务 + * @param ids + * @param serviceIds + * @param searchReportStartTime + * @param searchReportEndTime + * @param connTimeOut httpclient 连接超时时间 + * @param readTimeOut httpclient 读取超时时间 + * @return + * @throws MaatConvertException + */ + public static String getReport(int type,String ids,String serviceIds,String searchReportStartTime,String searchReportEndTime,Integer connTimeOut,Integer readTimeOut) throws MaatConvertException{ + String result = null; + Response response=null; + try { + if(StringUtils.isBlank(ids)||StringUtils.isBlank(serviceIds)){ + throw new MaatConvertException(""); + } + UriBuilder builder=UriBuilder.fromPath(Constants.LOG_BASE_URL+Constants.NTC_PZ_REPORT); + builder.queryParam("searchBusinessType",type); + builder.queryParam("searchService",serviceIds); + builder.queryParam("searchCfgId",ids); + if(StringUtils.isNotBlank(searchReportStartTime)) { + builder.queryParam("searchReportStartTime",searchReportStartTime); + } + if(StringUtils.isNotBlank(searchReportEndTime)) { + builder.queryParam("searchReportEndTime",searchReportEndTime); + } + URI uri=builder.build(); + //创建连接 + ClientUtil.initClient(connTimeOut,readTimeOut); + Client client=ClientUtil.getClient(); + WebTarget wt = client.target(uri); + logger.info("getReport url:"+uri.toString()); + Builder header = wt.request(); + try { + response= header.get(); + } catch (Exception e) { + throw new MaatConvertException(""); + } + if(response !=null && response.getStatus() == 200){ + result= response.readEntity(String.class); + }else{ + throw new MaatConvertException(":"+result); + } + } catch (Exception e) { + throw e; + } finally { + if (response != null) { + response.close(); + } + } + return result; + } public static String getReport(String reportUrl, SearchReport searchCondition) throws MaatConvertException{ // if(StringUtils.isBlank(searchCondition.getSearchService())){ // throw new MaatConvertException(""); diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 0de0323c2..810a34542 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -2189,8 +2189,8 @@ public class ExportExcel { } } // If is dict, get dict label + String valStr=val==null?"":val.toString(); if (StringUtils.isNotBlank(ef.dictType())){ - String valStr=val==null?"":val.toString(); if("type".equals(ef.dictType()) || "attribute".equals(ef.dictType()) || "label".equals(ef.dictType())){ // Get basic info @@ -2203,6 +2203,16 @@ public class ExportExcel { } } + if(ef.title().equals("whether_area_block")&&!StringUtil.isEmpty(val)){ + Integer whetherAreaBlock=Integer.parseInt(valStr); + if(whetherAreaBlock.equals(0)){ + val = msgProp.getProperty("all","all"); + }else if(whetherAreaBlock.equals(1)){ + val = msgProp.getProperty("selective","selective"); + }else{ + val =""; + } + } if(ef.title().equals("is_hex") && !StringUtil.isEmpty(val)){ Integer isHex=Integer.parseInt(val.toString()); if(isHex.equals(0) || isHex.equals(2)){ diff --git a/src/main/java/com/nis/util/httpclient/ClientUtil.java b/src/main/java/com/nis/util/httpclient/ClientUtil.java index d2a174ea7..6f3e36e8e 100644 --- a/src/main/java/com/nis/util/httpclient/ClientUtil.java +++ b/src/main/java/com/nis/util/httpclient/ClientUtil.java @@ -66,6 +66,33 @@ public class ClientUtil { } } + /** + * @param connTimeOut 连接超时时间 + * @param readTimeOut 读取超时时间 + */ + public static void initClient(Integer connTimeOut,Integer readTimeOut){ + try{ + if(client==null){ + PoolingHttpClientConnectionManager pcm = new PoolingHttpClientConnectionManager(); + pcm.setDefaultSocketConfig( SocketConfig.custom(). setSoTimeout(Constants.POOLCM_SOCKET_TIMEOUT). build()); + pcm.setMaxTotal(Constants.HTTP_MAX_CONNECTION); pcm.setDefaultMaxPerRoute(Constants.DEFAULT_MAX_PERROUTE); + + ClientConfig clientConfig = new ClientConfig(); + clientConfig.property(ClientProperties.CONNECT_TIMEOUT, connTimeOut);//连接超时时间 + clientConfig.property(ClientProperties.READ_TIMEOUT, readTimeOut);//读取超时时间 + clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, pcm); + clientConfig.register(ClientRequestHeaderFilter.class);//请求过滤器,自动添加header信息 + clientConfig.register(JacksonFeature.class);//json支持 + clientConfig.register(MultiPartFeature.class);//文件上传支持 + client = ClientBuilder.newClient(clientConfig); + logger.info("客户端初始化成功"); + } + + }catch (Exception e) { + logger.error("初始化客户端失败,请检查证书是否正确!",e); + System.exit(1);//程序退出 + } + } /** *path 以https://或http:// 开始不做处理,否则在path前加上 Constants.BASE_URL + Constants.VERSION * @param path diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 659bc074c..bdfce26ee 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -118,6 +118,7 @@ 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.domain.report.NtcPzReport; import com.nis.domain.maat.ToMaatBean; import com.nis.domain.specific.ConfigGroupInfo; import com.nis.domain.specific.SpecificServiceCfg; @@ -197,6 +198,9 @@ import com.nis.web.service.specific.SpecificServiceHostCfgService; import com.nis.web.service.systemService.ServiceConfigInfoService; import jersey.repackaged.com.google.common.collect.Maps; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; public class BaseController { @@ -3264,5 +3268,91 @@ public class BaseController { return hasData; } - + /** + * 通过serviceIds 和 compileIds获取日志总量 + * */ + public List> getLogTotal(Long endTime,String serviceIds,String compileIds){ + List> dataList=new ArrayList<>(); + SimpleDateFormat sdf=new SimpleDateFormat(Constants.SEARCH_DATEFORMAT); + Date endDate=null; + Date startDate=null; + if(endTime!=null) { + if(StringUtils.isNotBlank(Constants.LOG_TIME_START)) { + try { + startDate=sdf.parse(Constants.LOG_TIME_START); + if(StringUtils.isNotBlank(Constants.LOG_TIME_END)) { + endDate=sdf.parse(Constants.LOG_TIME_END); + }else { + endDate=new Date(endTime); + } + } catch (ParseException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + }else { + Calendar cal=Calendar.getInstance(); + //分钟间隔 + int interval=Constants.LOG_TIME_RANGE/1000/60; + cal.setTimeInMillis(endTime); + if(interval<60) {//5分钟 + cal.set(Calendar.SECOND, 0); + int minute=cal.get(Calendar.MINUTE); + cal.set(Calendar.MINUTE,minute/interval*interval); + }else {//1小时 + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MINUTE, 0); + } + Calendar endTimeCal=Calendar.getInstance(); + endTimeCal.setTimeInMillis(cal.getTimeInMillis()); + //endTimeCal.add(Calendar.SECOND, -1); + endDate=endTimeCal.getTime(); + cal.add(Calendar.MINUTE, -interval); + startDate=cal.getTime(); + } + logger.info("log search end time:"+sdf.format(endDate)); + logger.info("log search start time:"+sdf.format(startDate)); + } + List list=null; + try { + //调用带有超时时间的方法,设置与页面ajax获取total log 超时时间保持一致 页面设置在pzlog.js + String json=ConfigServiceUtil.getReport(Constants.BUSINESSTYPE_CONFIG, compileIds, serviceIds, startDate==null?null:sdf.format(startDate), endDate==null?null:sdf.format(endDate),Constants.CLIENT_CONNECT_TIMEOUT,10000); + list=getList(json); + } catch (Exception e) { + logger.error("获取日志总量失败!",e); + + } + + String[] idArr=compileIds.split(","); + for(String id:idArr) { + Map data=new HashMap(); + data.put("compileId", id); + Long sum=(long) 0; + if(list!=null&&(list.size()>0)){ + for(NtcPzReport report:list) { + if(Long.valueOf(id).longValue() == report.getCfgId().longValue()){ + sum=report.getSum().longValue(); + break; + } + } + } + data.put("sum",sum); + dataList.add(data); + } + return dataList; + } + public List getList(String json){ + JSONObject obj=JSONObject.fromObject(json); + if(obj.containsKey("data")) { + JSONObject data= obj.getJSONObject("data"); + if(data.containsKey("list")) { + Object list=data.get("list"); + JSONArray array=JSONArray.fromObject(list); + List result=JSONArray.toList(array, new NtcPzReport(),new JsonConfig()); + return result; + } + + } + return new ArrayList(); + } } diff --git a/src/main/java/com/nis/web/controller/configuration/AppCfgController.java b/src/main/java/com/nis/web/controller/configuration/AppCfgController.java index 00c2b9c13..41ed07f0b 100644 --- a/src/main/java/com/nis/web/controller/configuration/AppCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/AppCfgController.java @@ -4,8 +4,10 @@ import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -1706,13 +1708,35 @@ public class AppCfgController extends BaseController { Page page = appCfgService.findAppPolicyList(pageInfo, entity); ipLists = page.getList(); } - + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(","); + Set set=new HashSet(); for (AppPolicyCfg policy : ipLists) { + if(policy.getIsAudit()!=0){ + set.add(policy.getServiceId()); + compileIds.append(policy.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", policy.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(policy.getSpecServiceId()); if (app != null) { policy.setSocialName(app.getSpecServiceName()); } } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } // 查找社交应用的所有有效二级特定服务 SpecificServiceCfg second = new SpecificServiceCfg(); for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) { @@ -1726,6 +1750,12 @@ public class AppCfgController extends BaseController { List secondList = specificServiceCfgService.findAllSpecificServiceCfg(second, null); // 遍历,找到匹配项后将行为设置进去 for (AppPolicyCfg policy : ipLists) { + for (Map logTotal : logTotals) { + if(policy.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + policy.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } if (policy.getBehavCode() == null) continue; for (SpecificServiceCfg secondCfg : secondList) { @@ -1743,7 +1773,7 @@ public class AppCfgController extends BaseController { classMap.put(entity.getMenuNameCode(), AppPolicyCfg.class); classMap.put("NTC_IP", IpPortCfg.class); classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); - String cfgIndexInfoNoExport = ",encrypted_tunnel_behavior,basic_protocol,expression_type,match_method,whether_hexbinary,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",do_blacklist,encrypted_tunnel_behavior,basic_protocol,expression_type,match_method,whether_hexbinary,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" diff --git a/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java b/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java index 8a4456ec6..b55c6ed00 100644 --- a/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java +++ b/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java @@ -1,10 +1,15 @@ package com.nis.web.controller.configuration; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -24,15 +29,21 @@ import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; +import com.nis.domain.report.NtcPzReport; import com.nis.domain.specific.ConfigGroupInfo; import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.CallExternalProceduresException; import com.nis.exceptions.MaatConvertException; +import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; import com.nis.web.security.UserUtils; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import net.sf.json.JsonConfig; + /** * 基础协议控制类 * @@ -283,20 +294,44 @@ public class BasicProtocolController extends BaseController { Page page = appCfgService.findAppPolicyList(pageInfo, entity); ipLists = page.getList(); } + + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids for (AppPolicyCfg policy : ipLists) { + if(policy.getIsAudit()!=0){ + set.add(policy.getServiceId()); + compileIds.append(policy.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", policy.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(policy.getSpecServiceId()); if (app != null) { policy.setAppName(app.getSpecServiceName()); } } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_IP"); titleList.add("NTC_SUBSCRIBE_ID"); classMap.put(entity.getMenuNameCode(), AppPolicyCfg.class); classMap.put("NTC_IP", IpPortCfg.class); classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); - String cfgIndexInfoNoExport = ",encrypted_tunnel_behavior,behaviour_type,social_app,behaviour_type,expression_type,match_method,whether_hexbinary,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",do_blacklist,encrypted_tunnel_behavior,behaviour_type,social_app,behaviour_type,expression_type,match_method,whether_hexbinary,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" @@ -326,6 +361,12 @@ public class BasicProtocolController extends BaseController { List ipList = new ArrayList(); List subscribeInfoList = new ArrayList(); for (AppPolicyCfg cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } AppPolicyCfg cfgIndexInfo = appCfgService.exportIpInfo(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); subscribeInfoList.addAll(cfgIndexInfo.getNtcSubscribeIdCfgList()); @@ -353,5 +394,5 @@ public class BasicProtocolController extends BaseController { // return "redirect:" + adminPath // +"/ntc/iplist/list?functionId="+entity.getFunctionId(); } - + } diff --git a/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java b/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java index 27b5b6e4f..375576e18 100644 --- a/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java +++ b/src/main/java/com/nis/web/controller/configuration/EncryptedTunnelBehaviorController.java @@ -3,8 +3,10 @@ package com.nis.web.controller.configuration; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -307,12 +309,35 @@ public class EncryptedTunnelBehaviorController extends BaseController { Page page = appCfgService.findAppPolicyList(pageInfo, entity); ipLists = page.getList(); } + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids for (AppPolicyCfg policy : ipLists) { + if(policy.getIsAudit()!=0){ + set.add(policy.getServiceId()); + compileIds.append(policy.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", policy.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(policy.getSpecServiceId()); if (app != null) { policy.setBehaviorName(app.getSpecServiceName()); } } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } // 查找社交应用的所有有效二级特定服务 SpecificServiceCfg second = new SpecificServiceCfg(); for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) { @@ -343,7 +368,7 @@ public class EncryptedTunnelBehaviorController extends BaseController { classMap.put(entity.getMenuNameCode(), AppPolicyCfg.class); classMap.put("NTC_IP", IpPortCfg.class); classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); - String cfgIndexInfoNoExport = ",social_app,basic_protocol,expression_type,match_method,whether_hexbinary,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",do_blacklist,social_app,basic_protocol,expression_type,match_method,whether_hexbinary,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" @@ -373,6 +398,12 @@ public class EncryptedTunnelBehaviorController extends BaseController { List ipList = new ArrayList(); List subscribeInfoList = new ArrayList(); for (AppPolicyCfg cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } AppPolicyCfg cfgIndexInfo = appCfgService.exportIpInfo(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); subscribeInfoList.addAll(cfgIndexInfo.getNtcSubscribeIdCfgList()); diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java index baf8f5bf4..f32932cc9 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java @@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.ntc; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -934,6 +936,33 @@ public class AvContentController extends BaseController { Page page = avContentCfgService.findPage(pageInfo, entity); ipLists = page.getList(); } + + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_UNIVERSAL_IP"); titleList.add("NTC_STREAMING_MEDIA_URL"); @@ -979,6 +1008,12 @@ public class AvContentController extends BaseController { List subscribeInfoList = new ArrayList(); List streamurlList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = avContentCfgService.exportstream(cfg); ipList.addAll(maps.get("NTC_UNIVERSAL_IP")); streamurlList.addAll(maps.get("NTC_STREAMING_MEDIA_URL")); @@ -1032,7 +1067,33 @@ public class AvContentController extends BaseController { entity); ipLists = page.getList(); } - + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } + titleList.add(entity.getMenuNameCode()); titleList.add("NTC_UNIVERSAL_IP"); titleList.add("NTC_VOIP_ACCOUNT"); @@ -1078,6 +1139,12 @@ public class AvContentController extends BaseController { List subscribeInfoList = new ArrayList(); List countlList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = avContentCfgService.exportvoip(cfg); ipList.addAll(maps.get("NTC_UNIVERSAL_IP")); countlList.addAll(maps.get("NTC_VOIP_ACCOUNT")); diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java index e7326b2f7..4c39b780a 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java @@ -1,10 +1,13 @@ package com.nis.web.controller.configuration.ntc; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -198,6 +201,34 @@ public class BgpCfgController extends BaseController { Page page = bgpCfgService.getBgpList(pageInfo, entity); ipLists = page.getList(); } + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.strIsBlank(serviceIdsStr)&&!StringUtils.strIsBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } + + titleList.add(entity.getMenuNameCode()); titleList.add("NTC_IP"); titleList.add("NTC_BGP_AS"); @@ -206,7 +237,7 @@ public class BgpCfgController extends BaseController { classMap.put("NTC_IP", IpPortCfg.class); classMap.put("NTC_BGP_AS", BaseStringCfg.class); // classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); - String cfgIndexInfoNoExport = ",policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",do_blacklist,policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" @@ -243,6 +274,12 @@ public class BgpCfgController extends BaseController { // ArrayList(); List asInfoList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } CfgIndexInfo cfgIndexInfo = bgpCfgService.exportbgp(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); // subscribeInfoList.addAll(cfgIndexInfo.getNtcSubscribeIdCfgList()); diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java index 98d141c71..2efa98d51 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java @@ -6,8 +6,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; import javax.servlet.http.HttpServletRequest; @@ -624,6 +626,32 @@ public class FileTransferCfgController extends BaseController { ipLists = page.getList(); } + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_UNIVERSAL_IP"); titleList.add("NTC_FTP_URL"); @@ -673,6 +701,12 @@ public class FileTransferCfgController extends BaseController { List ftpkeyList = new ArrayList(); List ftpurlList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = fileTransferCfgService.exportftp(cfg); ftpkeyList.addAll(maps.get("NTC_FTP_CONTENT")); ftpurlList.addAll(maps.get("NTC_FTP_URL")); @@ -730,6 +764,32 @@ public class FileTransferCfgController extends BaseController { ipLists = page.getList(); } + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_UNIVERSAL_IP"); titleList.add("NTC_P2P_KEYWORDS"); @@ -783,6 +843,12 @@ public class FileTransferCfgController extends BaseController { List hashList = new ArrayList(); List keywordList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = fileTransferCfgService.exportp2p(cfg); keywordList.addAll(maps.get("NTC_P2P_KEYWORDS")); hashList.addAll(maps.get("NTC_P2P_HASH_BIN")); 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 079b6b402..51e6ed59a 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 @@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.ntc; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -25,6 +27,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.FunctionRegionDict; import com.nis.domain.FunctionServiceDict; import com.nis.domain.Page; +import com.nis.domain.configuration.AppPolicyCfg; import com.nis.domain.configuration.AsnKeywordCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.IpPortCfg; @@ -62,6 +65,7 @@ import com.nis.domain.configuration.template.SnatTemplate; import com.nis.domain.configuration.template.StringAllNotDoLogTemplate; import com.nis.domain.configuration.template.StringAllTemplate; import com.nis.domain.configuration.template.TopicWebsiteTemplate; +import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.Constants; import com.nis.util.DictUtils; @@ -544,7 +548,7 @@ public class IpController extends BaseController{ this._import(request,response,redirectAttributes, files,serviceDictId,regionDictIds,requestId,attribute,classify); return "redirect:" + adminPath+ importPath; } - //ip配置导出 + //ip配置导出 @RequestMapping(value = "exportIpAddr") public void exportIpAddr(Model model,HttpServletRequest request,HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){ @@ -568,6 +572,33 @@ public class IpController extends BaseController{ Page page = ipCfgService.getIpCfgList(pageInfo, entity); ipLists=page.getList(); } + + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_IP"); titleList.add("asn_policy"); @@ -599,6 +630,12 @@ public class IpController extends BaseController{ List ipList=new ArrayList(); List groupInfoList=new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } CfgIndexInfo cfgIndexInfo=ipCfgService.exportIpInfo(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); if(cfgIndexInfo.getAsnKeywords()!=null) { diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java index 2b4d20635..b84ce9654 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/MailCfgController.java @@ -5,8 +5,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.UUID; import javax.servlet.http.HttpServletRequest; @@ -249,7 +251,32 @@ public class MailCfgController extends BaseController { Page page = mailCfgService.getMailList(pageInfo, entity); ipLists = page.getList(); } - + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); String cfgIndexInfoNoExport = ",policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" @@ -305,6 +332,12 @@ public class MailCfgController extends BaseController { List mailBodyList = new ArrayList(); List mailReqHdrList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = mailCfgService.exportmail(cfg); mailReqHdrList.addAll(maps.get("NTC_MAIL_HDR")); mailBodyList.addAll(maps.get("NTC_MAIL_BODY")); 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 6ab6a5608..ac33ab721 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 @@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.ntc; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -626,6 +628,33 @@ public class WebsiteController extends BaseController { Page page = httpRedirectCfgService.getHttpRedirectList(pageInfo, entity); ipLists = page.getList(); } + + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } // 条件导出数据大于最大导出数,只导出最大导出条数 String cfgIndexInfoNoExport = ",policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; @@ -680,6 +709,12 @@ public class WebsiteController extends BaseController { List ipPortList = new ArrayList<>(); List subscribeIdList = new ArrayList<>(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = websiteCfgService.exportHttpCfg(cfg); httpUrlList.addAll(maps.get("NTC_HTTP_URL")); httpReqHdrList.addAll(maps.get("NTC_HTTP_REQ_HDR")); @@ -774,8 +809,19 @@ public class WebsiteController extends BaseController { Page page = websiteCfgService.getWebsiteList(pageInfo, entity); ipLists = page.getList(); } - + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids for (int i = 0; i < ipLists.size(); i++) { + if(ipLists.get(i).getIsAudit()!=0){ + set.add(ipLists.get(i).getServiceId()); + compileIds.append(ipLists.get(i).getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", ipLists.get(i).getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } if (ipLists.get(i).getDnsStrategyId() != null && ipLists.get(i).getDnsStrategyId() != 0) { List resStrategys = dnsResStrategyService .findDnsResStrategys(ipLists.get(i).getDnsStrategyId(), 1, 1); @@ -793,6 +839,19 @@ public class WebsiteController extends BaseController { ipLists.get(i).setDnsStrategyName(msgProp.getProperty("no_strategy")); } } + + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_IP"); titleList.add("NTC_DNS_REGION"); @@ -801,7 +860,7 @@ public class WebsiteController extends BaseController { classMap.put("NTC_IP", IpPortCfg.class); classMap.put("NTC_DNS_REGION", ComplexkeywordCfg.class); classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); - String cfgIndexInfoNoExport = ",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",do_blacklist,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" @@ -837,6 +896,12 @@ public class WebsiteController extends BaseController { List subscribeInfoList = new ArrayList(); List regionInfoList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } CfgIndexInfo cfgIndexInfo = websiteCfgService.exportdns(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); subscribeInfoList.addAll(cfgIndexInfo.getNtcSubscribeIdCfgList()); @@ -892,7 +957,31 @@ public class WebsiteController extends BaseController { Page page = websiteCfgService.getWebsiteList(pageInfo, entity); ipLists = page.getList(); } - + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_UNIVERSAL_IP"); titleList.add("NTC_SSL_SNI"); @@ -946,6 +1035,12 @@ public class WebsiteController extends BaseController { List ipPortList = new ArrayList<>(); List subscribeIdList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } Map maps = websiteCfgService.exportssl(cfg); sslSniList.addAll(maps.get("NTC_SSL_SNI")); sslSnaList.addAll(maps.get("NTC_SSL_SAN")); diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java index 0f26c49db..a4b427326 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java @@ -3,8 +3,10 @@ package com.nis.web.controller.configuration.ntc; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -371,7 +373,7 @@ public class WhiteListController extends CommonController { titleList.add("NTC_IP"); classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); classMap.put("NTC_IP", IpPortCfg.class); - String cfgIndexInfoNoExport = ",policy_name,do_log,letter,whether_area_block,classification,attribute,label,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",log_total,policy_name,do_log,letter,whether_area_block,classification,attribute,label,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",protocol,direction,do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" @@ -442,7 +444,32 @@ public class WhiteListController extends CommonController { Page page = domainService.getDomainList(pageInfo, entity); ipLists = page.getList(); } - + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } titleList.add(entity.getMenuNameCode()); titleList.add("NTC_HTTP_URL"); classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); @@ -471,6 +498,12 @@ public class WhiteListController extends CommonController { noExportMap.put("NTC_HTTP_URL", httpUrlInfoNoExport); List httpurlList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } CfgIndexInfo cfgIndexInfo = domainService.exportDomainInfo(cfg); httpurlList.addAll(cfgIndexInfo.getHttpUrlList()); } From 4e41bfcf796af1143bc56ebf060682af62b52535 Mon Sep 17 00:00:00 2001 From: shangguanyanfei Date: Mon, 14 Jan 2019 11:08:42 +0800 Subject: [PATCH 12/45] =?UTF-8?q?=E5=9F=9F=E5=90=8D=E7=BB=9F=E8=AE=A1=20?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=A1=86=E9=BB=98=E8=AE=A41=E5=B0=8F?= =?UTF-8?q?=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/dashboard/TrafficStatisticsInfoController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java b/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java index 96cbdc1ed..8a1b1f156 100644 --- a/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java +++ b/src/main/java/com/nis/web/controller/dashboard/TrafficStatisticsInfoController.java @@ -525,7 +525,7 @@ public class TrafficStatisticsInfoController extends BaseController { Calendar cal = Calendar. getInstance (); cal.setTime(new Date()); String now = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//获取到完整的时间 - cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 12); + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); String oneHoursAgo = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime()); List domainList = appCfgService.getDomainDict(new WebsiteDomainTopic());// domain 域名 model.addAttribute("domainList", domainList); From a2a6884c3b9dfdbd739c06a673dff4f4e7417892 Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Mon, 14 Jan 2019 12:02:35 +0800 Subject: [PATCH 13/45] =?UTF-8?q?=E4=BF=AE=E6=94=B9P2P=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=A0=87=E8=AF=86=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=89=B9=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nis/util/excel/ExportExcel.java | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 810a34542..4c66b11b8 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -495,16 +495,21 @@ public class ExportExcel { 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++; + if(StringUtil.isEmpty(service.getConfigDoLog())){ + headerStr=""; + commentStr=""; + }else{ + 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); } - defaultValue = configDoLog.substring(configDoLog.lastIndexOf(";")+1); } commentStr=msgProp.getProperty("select")+":\n"+commentStr; index++; @@ -1288,7 +1293,11 @@ public class ExportExcel { commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; index++; //2、默认值说明 - commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":0\n"; + if(region.getDictId().equals(159)) { // P2P文件标识配置 + commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":1\n"; + }else { + commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":0\n"; + } index++; } } @@ -1318,10 +1327,19 @@ public class ExportExcel { } }else{ for (SysDataDictionaryItem sysDataDictionaryItem : isCaseSenstive) { - if(sysDataDictionaryItem.getItemCode().equals("1")){ - commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue())+")"+"\n"; - list.add(sysDataDictionaryItem.getItemCode()); - index++; + if(region.getDictId().equals(159)) { // P2P文件标识配置 + if(sysDataDictionaryItem.getItemCode().equals("0")){ + commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue())+")"+"\n"; + list.add(sysDataDictionaryItem.getItemCode()); + index++; + } + }else { + if(sysDataDictionaryItem.getItemCode().equals("1")){ + commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue())+")"+"\n"; + list.add(sysDataDictionaryItem.getItemCode()); + index++; + } + } } } From bd026815972c86906ac58f9d4783d2cb2af0bd9a Mon Sep 17 00:00:00 2001 From: dongxiaoyan Date: Mon, 14 Jan 2019 13:37:21 +0800 Subject: [PATCH 14/45] =?UTF-8?q?do=5Flog=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E6=94=B9=E5=9B=9E=E4=B9=8B=E5=89=8D=E7=9A=84=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/messages/message_en.properties | 2 +- src/main/resources/messages/message_ru.properties | 2 +- src/main/resources/messages/message_zh_CN.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index d12827d31..92a98b976 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1018,7 +1018,7 @@ domain_intercepter_ratelimit=Domain Intercept Rate Limit app_built_in_features_config=APP Built-in Features PXY_INTERCEPT_PKT_BIN=Packet Payload certificate=Certificate -do_log=Log Option +do_log=Do Log file_strategy=File Strategy file_desc=File Desc content_type=Content Type diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 6881b60cf..98ba3fbb7 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1018,7 +1018,7 @@ domain_intercepter_ratelimit=\u041f\u0435\u0440\u0435\u0445\u0432\u0430\u0442 \u app_built_in_features_config=\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f PXY_INTERCEPT_PKT_BIN=\u041f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 certificate=\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 -do_log=\u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0436\u0443\u0440\u043d\u0430\u043b \u0438\u043b\u0438 \u043d\u0435\u0442 +do_log=\u041D\u0430\u0434\u043E \u043B\u0438 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B file_strategy=\u041f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 file_desc=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 content_type=\u0422\u0438\u043f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 3ee29773d..8437f71f0 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1017,7 +1017,7 @@ domain_intercepter_ratelimit=\u57df\u540d\u62e6\u622a\u9650\u901f app_built_in_features_config=APP\u5185\u7f6e\u7279\u5f81\u7ef4\u62a4 PXY_INTERCEPT_PKT_BIN=\u5305\u8f7d\u8377 certificate=\u8bc1\u4e66 -do_log=\u8bb0\u5f55\u975e\u7ed3\u6784\u5316\u65e5\u5fd7 +do_log=\u662F\u5426\u8BB0\u5F55\u65E5\u5FD7 file_strategy=\u6587\u4ef6\u7b56\u7565 file_desc=\u6587\u4ef6\u63cf\u8ff0\t content_type=\u5185\u5bb9\u7c7b\u578b From ca70ed22efb2847e9f373c15758a211fcd8341f7 Mon Sep 17 00:00:00 2001 From: wangxin Date: Mon, 14 Jan 2019 14:50:04 +0800 Subject: [PATCH 15/45] =?UTF-8?q?subscribe=5Fid=20region=E5=AD=97=E5=85=B8?= =?UTF-8?q?region=5Ftype=E5=BA=94=E4=B8=BA2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/sql/20190114/subscribe_id.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/main/resources/sql/20190114/subscribe_id.sql diff --git a/src/main/resources/sql/20190114/subscribe_id.sql b/src/main/resources/sql/20190114/subscribe_id.sql new file mode 100644 index 000000000..cf092d8ab --- /dev/null +++ b/src/main/resources/sql/20190114/subscribe_id.sql @@ -0,0 +1 @@ +update function_region_dict set region_type=2 where config_service_type='subscribe_id'; \ No newline at end of file From ffab6083fd1b04c69b17e6c871668c4085173630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=9A=93=E5=AE=B8?= Date: Mon, 14 Jan 2019 15:48:24 +0800 Subject: [PATCH 16/45] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E9=85=8D=E7=BD=AEip?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E5=AF=BC=E5=87=BA,=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=90=8E=E4=B8=8E=E7=95=8C=E9=9D=A2=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=B8=8D=E4=B8=80=E6=A0=B7,=E5=B7=B2?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nis/util/excel/ExcelCsv.java | 4 +- .../java/com/nis/util/excel/ExportExcel.java | 4 +- .../ntc/WhiteListController.java | 37 ++++++++++++++++++- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/nis/util/excel/ExcelCsv.java b/src/main/java/com/nis/util/excel/ExcelCsv.java index 0024e5036..24809147b 100644 --- a/src/main/java/com/nis/util/excel/ExcelCsv.java +++ b/src/main/java/com/nis/util/excel/ExcelCsv.java @@ -130,9 +130,7 @@ public class ExcelCsv { Map> commentMap=new HashMap>(); for (String title : titleList) { String noExportField=noExportMap.get(title); - if(noExportField.contains("do_log")){ - noExportField=",do_blacklist,"+noExportField; - } + noExportField=",do_blacklist,"+noExportField; List annotationList = Lists.newArrayList(); List list=new ArrayList(); // Get annotation field diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 4c66b11b8..1b48a066f 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -2406,9 +2406,7 @@ public class ExportExcel { Map> commentMap=new HashMap>(); for (String title : titleList) { String noExportField=noExportMap.get(title); - if(noExportField.contains("do_log")){ - noExportField=",do_blacklist,"+noExportField; - } + noExportField=",do_blacklist,"+noExportField; List annotationList = Lists.newArrayList(); List list=new ArrayList(); // Get annotation field diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java index a4b427326..d3c95732b 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WhiteListController.java @@ -369,11 +369,40 @@ public class WhiteListController extends CommonController { Page page = ipCfgService.getIpCfgList(pageInfo, entity); ipLists = page.getList(); } + + //日志总量 + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + for (CfgIndexInfo cfg : ipLists) { + if(cfg.getIsAudit()!=0){ + set.add(cfg.getServiceId()); + compileIds.append(cfg.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", cfg.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + + } + StringBuilder serviceIds=new StringBuilder(","); + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + //获取日志总量 + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } + titleList.add(entity.getMenuNameCode()); titleList.add("NTC_IP"); classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); classMap.put("NTC_IP", IpPortCfg.class); - String cfgIndexInfoNoExport = ",log_total,policy_name,do_log,letter,whether_area_block,classification,attribute,label,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String cfgIndexInfoNoExport = ",policy_name,letter,whether_area_block,classification,attribute,label,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport = ",protocol,direction,do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + ",config_time,editor,edit_time,auditor,audit_time" + ",letter,whether_area_block,classification,attribute,label" @@ -397,6 +426,12 @@ public class WhiteListController extends CommonController { noExportMap.put("NTC_IP", ipPortInfoNoExport); List ipList = new ArrayList(); for (CfgIndexInfo cfg : ipLists) { + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } CfgIndexInfo cfgIndexInfo = ipCfgService.exportIpInfo(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); } From c6f78919a886000001d6d8695a435a5f9fcfef6c Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Mon, 14 Jan 2019 16:03:42 +0800 Subject: [PATCH 17/45] =?UTF-8?q?HTTP=20Advanced=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=B0=83=E6=95=B4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WEB-INF/views/cfg/website/httpForm.jsp | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/webapp/WEB-INF/views/cfg/website/httpForm.jsp b/src/main/webapp/WEB-INF/views/cfg/website/httpForm.jsp index caea103a6..729f8fa49 100644 --- a/src/main/webapp/WEB-INF/views/cfg/website/httpForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/website/httpForm.jsp @@ -395,6 +395,28 @@
+ + +
+ +

+ + +

+ <%-- --%> + + +
hidden disabled "> + + <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> +
+
+
+ +
@@ -441,28 +463,6 @@
- - -
- -

- - -

- <%-- --%> - - -
hidden disabled "> - - <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> -
-
-
- -
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%> From 82bf4910f3922a85665b84c0ba35f2021a356ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=9A=93=E5=AE=B8?= Date: Mon, 14 Jan 2019 16:28:47 +0800 Subject: [PATCH 18/45] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E9=85=8D=E7=BD=AE,ip?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95=E5=AF=BC=E5=87=BA=E5=90=8E=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=A1=BA=E5=BA=8F,=E5=B7=B2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/nis/domain/configuration/BaseCfg.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/nis/domain/configuration/BaseCfg.java b/src/main/java/com/nis/domain/configuration/BaseCfg.java index 9ff914ecd..5bcd0eeda 100644 --- a/src/main/java/com/nis/domain/configuration/BaseCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseCfg.java @@ -119,7 +119,7 @@ public class BaseCfg extends BaseEntity implements Cloneable{ /** * 有效标识 */ - @ExcelField(title="valid_identifier",dictType="VALID_IDENTIFIER",sort=90) + @ExcelField(title="valid_identifier",dictType="VALID_IDENTIFIER",sort=26) @Expose protected Integer isValid; /** From d4270894b51e3dcd1ed527ad904540f75a29b78e Mon Sep 17 00:00:00 2001 From: shangguanyanfei Date: Mon, 14 Jan 2019 17:34:20 +0800 Subject: [PATCH 19/45] =?UTF-8?q?1.=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=89=93=E5=8D=B0=E6=B7=BB=E5=8A=A0=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E5=92=8C=E5=90=88=E8=AE=A1=E8=A1=8C=202.Website=20Sta?= =?UTF-8?q?tistics=E9=A1=B5=E9=9D=A2unique=E6=94=B9=E4=B8=BAclient=20IP=20?= =?UTF-8?q?3.Logs-HTTP-KeywordLogToURL=E5=92=8C=E5=AE=9E=E6=97=B6=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1-Statistics-Packet=EF=BC=8CStream=EF=BC=8CProtocol,mul?= =?UTF-8?q?timedia,Anti=20DDos,Proxy=E9=A1=B5=E9=9D=A2=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=88=97=E5=85=A8=E9=83=A8=E9=9A=90=E8=97=8F=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=B8=8D=E5=85=81=E8=AE=B8=E5=AF=BC=E5=87=BA=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/NtcEventBlockController.java | 27 +++- .../NtcEventKeyProtectionController.java | 24 ++++ .../report/NtcEventMonitorController.java | 26 ++++ .../controller/report/ReportController.java | 30 +++++ src/main/webapp/WEB-INF/tags/sys/delRow.tag | 4 + .../views/dashboard/trafficAppTypeList.jsp | 17 ++- .../dashboard/trafficHttpStatisticList.jsp | 16 ++- .../views/dashboard/trafficIpActiveList.jsp | 17 ++- .../dashboard/trafficProtocolTypeList.jsp | 16 ++- .../views/dashboard/trafficWebTypeList.jsp | 23 +++- src/main/webapp/WEB-INF/views/index.jsp | 73 +++++++++-- .../WEB-INF/views/report/asnRecordList.jsp | 55 +++++--- .../WEB-INF/views/report/eventBlockList.jsp | 120 +++++++++++++----- .../views/report/eventKeyProtectionList.jsp | 107 ++++++++++++---- .../WEB-INF/views/report/eventMonitorList.jsp | 118 ++++++++++++----- .../views/report/ipRangeReportList.jsp | 75 +++++++---- src/main/webapp/WEB-INF/views/report/list.jsp | 42 ++++-- .../WEB-INF/views/report/urlReportList.jsp | 55 +++++--- src/main/webapp/static/global/css/page.css | 4 + .../webapp/static/global/scripts/common.js | 21 ++- 20 files changed, 699 insertions(+), 171 deletions(-) diff --git a/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java b/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java index 70990a7df..fed932e83 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java @@ -395,7 +395,32 @@ public class NtcEventBlockController extends BaseController { list = data.getList(); } } - + //计算合计,并添加在集合的最后位置 + Properties msgProp = getMsgProp(); + NtcEventMonitorOrBlockReport ntcEventMonitorOrBlockReport = new NtcEventMonitorOrBlockReport(); + long ipNum = 0; + long httpNum = 0; + long mailNum = 0; + long vedioNum = 0; + long agentNum = 0; + for (NtcEventMonitorOrBlockReport entity : list) { + ipNum += entity.getIpNum(); + httpNum += entity.getHttpNum(); + mailNum += entity.getMailNum(); + vedioNum += entity.getVedioNum(); + agentNum += entity.getAgentNum(); + } + String report_total = msgProp.getProperty("report_total"); + ntcEventMonitorOrBlockReport.setIpNum(ipNum); + ntcEventMonitorOrBlockReport.setHttpNum(httpNum); + ntcEventMonitorOrBlockReport.setMailNum(mailNum); + ntcEventMonitorOrBlockReport.setVedioNum(vedioNum); + ntcEventMonitorOrBlockReport.setAgentNum(agentNum); + ntcEventMonitorOrBlockReport.setTaskIds(report_total); + ntcEventMonitorOrBlockReport.setTaskName("    一   "); + ntcEventMonitorOrBlockReport.setTaskTime("    一   "); + ntcEventMonitorOrBlockReport.setReportTime("    一   "); + list.add(ntcEventMonitorOrBlockReport); return list; } catch (Exception e) { logger.error("ntc_event_block_report print failed", e); diff --git a/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java b/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java index b770b667e..36ee299d3 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java @@ -386,6 +386,30 @@ public class NtcEventKeyProtectionController extends BaseController { list = data.getList(); } } + //计算合计,并填加到集合最后 + Properties msgProp = getMsgProp(); + NtcEventKeyProtectionReport ntcEventKey=new NtcEventKeyProtectionReport(); + long letterNum=0; + long configNum=0; + long monitorNum=0; + long controlNum=0; + for (NtcEventKeyProtectionReport entity : list) { + letterNum += entity.getLetterNum(); + configNum += entity.getConfigNum(); + monitorNum += entity.getMonitorNum(); + controlNum += entity.getControlNum(); + } + String report_total=msgProp.getProperty("report_total"); + ntcEventKey.setLetterNum(letterNum); + ntcEventKey.setConfigNum(configNum); + ntcEventKey.setMonitorNum(monitorNum); + ntcEventKey.setControlNum(controlNum); + ntcEventKey.setTaskIds(report_total); + ntcEventKey.setTaskName("    一   "); + ntcEventKey.setTaskTime("    一   "); + ntcEventKey.setReportTime("    一   "); + list.add(ntcEventKey); + return list; } catch (Exception e) { logger.error("ntc_event_key_protection_report print failed", e); diff --git a/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java b/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java index 5f4d29f2e..591e315f7 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java @@ -393,6 +393,32 @@ public class NtcEventMonitorController extends BaseController { list = data.getList(); } } + //计算合计,并添加到集合的最后 + Properties msgProp = getMsgProp(); + NtcEventMonitorOrBlockReport ntcEventMonitorOrBlockReport = new NtcEventMonitorOrBlockReport(); + long ipNum = 0; + long httpNum = 0; + long mailNum = 0; + long vedioNum = 0; + long agentNum = 0; + for (NtcEventMonitorOrBlockReport entity : list) { + ipNum += entity.getIpNum(); + httpNum += entity.getHttpNum(); + mailNum += entity.getMailNum(); + vedioNum += entity.getVedioNum(); + agentNum += entity.getAgentNum(); + } + String report_total = msgProp.getProperty("report_total"); + ntcEventMonitorOrBlockReport.setIpNum(ipNum); + ntcEventMonitorOrBlockReport.setHttpNum(httpNum); + ntcEventMonitorOrBlockReport.setMailNum(mailNum); + ntcEventMonitorOrBlockReport.setVedioNum(vedioNum); + ntcEventMonitorOrBlockReport.setAgentNum(agentNum); + ntcEventMonitorOrBlockReport.setTaskIds(report_total); + ntcEventMonitorOrBlockReport.setTaskName("    一   "); + ntcEventMonitorOrBlockReport.setTaskTime("    一   "); + ntcEventMonitorOrBlockReport.setReportTime("    一   "); + list.add(ntcEventMonitorOrBlockReport); return list; } catch (Exception e) { logger.error("ntc_event_monitor_report print failed", e); diff --git a/src/main/java/com/nis/web/controller/report/ReportController.java b/src/main/java/com/nis/web/controller/report/ReportController.java index b761321fa..df6f44659 100644 --- a/src/main/java/com/nis/web/controller/report/ReportController.java +++ b/src/main/java/com/nis/web/controller/report/ReportController.java @@ -613,6 +613,23 @@ public class ReportController extends BaseController { list = data.getList(); } } + Properties msgProp = getMsgProp(); + NtcAsnRecord ntcAsnRecord = new NtcAsnRecord(); + double pps = 0; + double bps = 0; + for (NtcAsnRecord entity : list) { + if (null != entity.getBps() && !"".equals(entity.getBps())) { + bps += Double.valueOf(entity.getBps()); + } + if (null != entity.getPps() && !"".equals(entity.getPps())) { + pps += Double.valueOf(entity.getPps()); + } + } + String report_total = msgProp.getProperty("report_total"); + ntcAsnRecord.setAsn(report_total); + ntcAsnRecord.setBps(String.format("%.2f", bps)); + ntcAsnRecord.setPps(String.format("%.2f", pps)); + list.add(ntcAsnRecord); return list; } catch (Exception e) { logger.error("Ntc_Asn_Record print failed", e); @@ -664,6 +681,19 @@ public class ReportController extends BaseController { list = data.getList(); } } + Properties msgProp = getMsgProp(); + NtcURLReport ntcURLReport = new NtcURLReport(); + long ipCount=0; + long connCount=0; + for (NtcURLReport entity : list) { + ipCount += entity.getIpCount(); + connCount += entity.getConnCount(); + } + String report_total = msgProp.getProperty("report_total"); + ntcURLReport.setIpCount(ipCount); + ntcURLReport.setConnCount(connCount); + ntcURLReport.setUrl(report_total); + list.add(ntcURLReport); return list; } catch (Exception e) { logger.error("Ntc_HTTPS_Report print failed", e); diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 4338e2c3c..6fc9eff80 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -415,6 +415,10 @@ function cancelPassOpt(url){ url+="&"+$("#exportType").val()+"="+$("#exportValue").val(); } } + if(column.toString()!="" && column.toString() ==""){ + top.$.jBox.tip("", ""); + return; + } if(column.toString()!=""){ url+="&columns="+column.toString(); }else{ diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp index c4953af32..dd4b361ec 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp @@ -212,11 +212,25 @@ function ajaxAppList(start,end,entranceId){ //打印列表 function doPrint() { getPageData(1,999999);// 设置打印条数 + //统计数据 + var tb=document.getElementById("contentTable"); + var rows=tb.rows; + $("#contentTable tbody tr").removeClass("hidden"); + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"contentTable","print-title"); + + var title='

'; + title+='
:'+$("#beginDate").val(); + title+='    '; + title+=':'+$("#endDate").val()+'
'; + $('.tr-total').addClass("tc"); $("#contentTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); + $('.tr-total').addClass("hidden"); getPageData(1,10); pageJuan(10);//初始化分页 } @@ -343,6 +357,7 @@ function htmlData(fileDataS){ if(index==fileDataS.length-1){ html+="" html+= ""+""+""; + html+= "" +"--"+"" html+= ""+totalLink+""; html+= "" +"100%"+""; html+= ""+Math.round(totalPackets*100)/100+""; diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficHttpStatisticList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficHttpStatisticList.jsp index 4cda0d06a..c2a569e15 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficHttpStatisticList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficHttpStatisticList.jsp @@ -173,11 +173,25 @@ function ajaxProtocolList(start,end){ //打印列表 function doPrint() { getPageData(1,999999);// 设置打印条数 + //统计数据 + var tb=document.getElementById("contentTable"); + var rows=tb.rows; + $("#contentTable tbody tr").removeClass("hidden"); + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"contentTable","print-title"); + + var title='

'; + title+='
:'+$("#beginDate").val(); + title+='    '; + title+=':'+$("#endDate").val()+'
'; + $('.tr-total').addClass("tc"); $("#contentTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); + $('.tr-total').addClass("hidden"); getPageData(1,10); pageJuan(10);//初始化分页 } diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficIpActiveList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficIpActiveList.jsp index fe7090a1d..fa791acf9 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficIpActiveList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficIpActiveList.jsp @@ -150,11 +150,24 @@ $(document).ready(function(){ }); //打印列表 function doPrint() { + //统计数据 + var tb=document.getElementById("contentTable"); + var rows=tb.rows; + $("#contentTable tbody tr").removeClass("hidden"); + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"contentTable","print-title"); + + var title='

'; + title+='
:'+$("#beginDate").val(); + title+='    '; + title+=':'+$("#endDate").val()+'
'; $("#contentTable").print({ globalStyles: true, iframe: true, - append: null - }); + append: null, + prepend: title + }); + $('.tr-total').addClass("hidden"); } //导出列表 $(".export-btn").click(function(){ diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficProtocolTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficProtocolTypeList.jsp index 72c1e5e4b..4311e068f 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficProtocolTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficProtocolTypeList.jsp @@ -203,11 +203,25 @@ function ajaxProtocolList(start,end,entranceId){ //打印列表 function doPrint() { getPageData(1,999999);// 设置打印条数 + //统计数据 + var tb=document.getElementById("contentTable"); + var rows=tb.rows; + $("#contentTable tbody tr").removeClass("hidden"); + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"contentTable","print-title"); + + var title='

'; + title+='
:'+$("#beginDate").val(); + title+='    '; + title+=':'+$("#endDate").val()+'
'; + $('.tr-total').addClass("tc"); $("#contentTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); + $('.tr-total').addClass("hidden"); getPageData(1,10); pageJuan(10);//初始化分页 } diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp index fb6bc5458..ffe66034f 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficWebTypeList.jsp @@ -144,7 +144,7 @@ - + () @@ -255,11 +255,25 @@ //打印列表 function doPrint() { getPageData(1,999999);// 设置打印条数 + //统计数据 + var tb=document.getElementById("contentTable"); + var rows=tb.rows; + $("#contentTable tbody tr").removeClass("hidden"); + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"contentTable","print-title"); + + var title='

'; + title+='
:'+$("#beginDate").val(); + title+='    '; + title+=':'+$("#endDate").val()+'
'; + $('.tr-total').addClass("tc"); $("#contentTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); + $('.tr-total').addClass("hidden"); getPageData(1,10); pageJuan(10);//初始化分页 } @@ -388,11 +402,12 @@ if(index==fileDataS.length-1){ html+="" html+= ""+""+""; + html+= "" +"--"+"" html+= ""+totalunique+""; html+= "" +"--"+""; - html+= ""+totalPackets+""; + html+= ""+parseInt(totalPackets).toFixed(2)+""; html+= ""+"100%"+""; - html+= ""+totalGbyte+""; + html+= ""+parseInt(totalGbyte).toFixed(2)+""; html+= ""+"100%"+""; html+="" } diff --git a/src/main/webapp/WEB-INF/views/index.jsp b/src/main/webapp/WEB-INF/views/index.jsp index f68253b09..76208af97 100644 --- a/src/main/webapp/WEB-INF/views/index.jsp +++ b/src/main/webapp/WEB-INF/views/index.jsp @@ -193,7 +193,7 @@ var dataList=data.requestStatisticList; var userTableStr=''; - userTableStr +=''; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; userTableStr += ''; @@ -217,7 +217,11 @@ for (var k = 0; k < menu.length; k++) { userTableStr += ''; } userTableStr += ''; @@ -228,26 +232,69 @@ } } }); + //计算合计行 + var tb=document.getElementById("printTable"); + var rows = tb.rows; + var colums = tb.rows[0].cells.length; + var trtotal=""; + trtotal+=""; + for(var j = 1; j < colums; j++){ + var sum = 0; + for(var i = 1;i"; + } + $('#total').remove(); + $('#printTable tbody').append(""); + $('#total').html(trtotal); + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"printTable","print-title"); + var title='

'; + title+='
   '+$("#requestStatisticTime").val()+'
'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); - /* $(".cfgMenuTable").print({ - globalStyles: true, - iframe: true, - append: null - }); */ } //配置业务和状态统计打印 - function statisticsPrint() { + function statisticsPrint() { + + $('.count').removeClass("hidden"); + //计算合计行 + var tb=document.getElementsByName("statisticsStatusTable")[0]; + var rows = tb.rows; + var colums = tb.rows[0].cells.length; + $(".statisticsStatusTable .count").empty(); + $(".statisticsStatusTable .count").append(""); + for(var j = 1; j < colums; j++){ + var sum = 0; + for(var i = 1;i"+sum+""); + } + //为某一列或者 某一行 添加样式 + addPrintTableCss(rows.length-1,0,"contentTable2","print-title"); + var title='

'; + title+='
   '+$("#configStatisticTime").val()+'
'; + //打印 $(".statisticsStatusTable").print({ globalStyles: true, iframe: true, - append: null - }); + append: null, + prepend: title + }); + //隐藏合计行 + $('.count').addClass("hidden"); } @@ -323,6 +370,7 @@ "> +
@@ -398,6 +446,7 @@
+ [:${configStatisticTime }] @@ -419,7 +468,7 @@
-
'; var sss=menu[k].functionId+'_'+menu[k].functionId; - userTableStr += dataList[j][sss]; + if(dataList[j][sss] !=undefined && dataList[j][sss] !=null &&dataList[j][sss] !=""){ + userTableStr += dataList[j][sss]; + }else{ + userTableStr += "0"; + } userTableStr += '
+
diff --git a/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp b/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp index 2c15227d7..bdd37d706 100644 --- a/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp +++ b/src/main/webapp/WEB-INF/views/report/asnRecordList.jsp @@ -68,40 +68,65 @@ dataType:"json", success:function(data){ if(data !=null){ + var thData=$('#contentTable thead tr th'); var userTableStr=''; - userTableStr +='
'; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; + for (var i = 0; i < thData.length; i++) { + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } userTableStr += ''; userTableStr += ''; userTableStr += ''; for(var j=0;j") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } + userTableStr += ''; } userTableStr +=''; userTableStr +='
'; + userTableStr += data[j].asn; + userTableStr += ''; + userTableStr += data[j].pps; + userTableStr += ''; + userTableStr += data[j].bps; + userTableStr += '
'; $("#contentPrintTable").html(userTableStr); + //为某一列或者 某一行 添加样式 + addPrintTableCss(data.length,0,"printTable","print-title"); } } }); + //为某一列或者 某一行 添加样式 +// addPrintTableCss(5,2,"printTable","print-title"); + var title='

'; + title+='
:'+$('[name="searchFoundStartTime"]').val()+'    '; + title+=':'+$('[name="searchFoundEndTime"]').val()+'
'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); } diff --git a/src/main/webapp/WEB-INF/views/report/eventBlockList.jsp b/src/main/webapp/WEB-INF/views/report/eventBlockList.jsp index 446052699..47bcb06eb 100644 --- a/src/main/webapp/WEB-INF/views/report/eventBlockList.jsp +++ b/src/main/webapp/WEB-INF/views/report/eventBlockList.jsp @@ -92,54 +92,114 @@ dataType:"json", success:function(data){ if(data !=null){ + var thData=$('#contentTable thead tr th'); var userTableStr=''; - userTableStr +=''; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; + for (var i = 0; i < thData.length; i++) { + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } userTableStr += ''; userTableStr += ''; userTableStr += ''; for(var j=0;j") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } + userTableStr += ''; } userTableStr +=''; userTableStr +='
'; + userTableStr += data[j].taskIds; + userTableStr += ''; + userTableStr += data[j].taskName; + userTableStr += ''; + userTableStr += data[j].ipNum; + userTableStr += ''; + userTableStr += data[j].httpNum; + userTableStr += ''; + userTableStr += data[j].mailNum; + userTableStr += ''; + userTableStr += data[j].vedioNum; + userTableStr += ''; + userTableStr += data[j].agentNum; + userTableStr += ''; + userTableStr += data[j].taskTime; + userTableStr += ''; + userTableStr += data[j].reportTime; + userTableStr += '
'; $("#contentPrintTable").html(userTableStr); + //为某一列或者 某一行 添加样式 + addPrintTableCss(data.length,0,"printTable","print-title"); } } }); + //为某一列或者 某一行 添加样式 +// addPrintTableCss(4,2,"printTable","print-title"); + var title='

'; + title+='
:'+$('[name="searchTaskStartTime"]').val()+'—'+$('[name="searchTaskEndTime"]').val(); + title+='    '; + title+=':'+$('[name="searchReportStartTime"]').val()+'—'+$('[name="searchReportEndTime"]').val()+'
'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); } diff --git a/src/main/webapp/WEB-INF/views/report/eventKeyProtectionList.jsp b/src/main/webapp/WEB-INF/views/report/eventKeyProtectionList.jsp index 073d388ff..4f8fbf597 100644 --- a/src/main/webapp/WEB-INF/views/report/eventKeyProtectionList.jsp +++ b/src/main/webapp/WEB-INF/views/report/eventKeyProtectionList.jsp @@ -93,51 +93,104 @@ dataType:"json", success:function(data){ if(data !=null){ + var thData=$('#contentTable thead tr th'); var userTableStr=''; - userTableStr +=''; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; + for (var i = 0; i < thData.length; i++) { + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } userTableStr += ''; userTableStr += ''; userTableStr += ''; for(var j=0;j") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } + userTableStr += ''; } userTableStr +=''; userTableStr +='
'; + userTableStr += data[j].taskIds; + userTableStr += ''; + userTableStr += data[j].taskName; + userTableStr += ''; + userTableStr += data[j].letterNum; + userTableStr += ''; + userTableStr += data[j].configNum; + userTableStr += ''; + userTableStr += data[j].monitorNum; + userTableStr += ''; + userTableStr += data[j].controlNum; + userTableStr += ''; + userTableStr += data[j].taskTime; + userTableStr += ''; + userTableStr += data[j].reportTime; + userTableStr += '
'; $("#contentPrintTable").html(userTableStr); + //为某一列或者 某一行 添加样式 + addPrintTableCss(data.length,0,"printTable","print-title"); } } }); + var title='

'; + title+='
:'+$('[name="searchTaskStartTime"]').val()+'—'+$('[name="searchTaskEndTime"]').val(); + title+='    '; + title+=':'+$('[name="searchReportStartTime"]').val()+'—'+$('[name="searchReportEndTime"]').val()+'
'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); } diff --git a/src/main/webapp/WEB-INF/views/report/eventMonitorList.jsp b/src/main/webapp/WEB-INF/views/report/eventMonitorList.jsp index 32c2ad3f1..bf96d42e1 100644 --- a/src/main/webapp/WEB-INF/views/report/eventMonitorList.jsp +++ b/src/main/webapp/WEB-INF/views/report/eventMonitorList.jsp @@ -101,54 +101,112 @@ dataType:"json", success:function(data){ if(data !=null){ + var thData=$('#contentTable thead tr th'); var userTableStr=''; - userTableStr +=''; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; + for (var i = 0; i < thData.length; i++) { + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } userTableStr += ''; userTableStr += ''; userTableStr += ''; for(var j=0;j") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } + userTableStr += ''; } userTableStr +=''; userTableStr +='
'; + userTableStr += data[j].taskIds; + userTableStr += ''; + userTableStr += data[j].taskName; + userTableStr += ''; + userTableStr += data[j].ipNum; + userTableStr += ''; + userTableStr += data[j].httpNum; + userTableStr += ''; + userTableStr += data[j].mailNum; + userTableStr += ''; + userTableStr += data[j].vedioNum; + userTableStr += ''; + userTableStr += data[j].agentNum; + userTableStr += ''; + userTableStr += data[j].taskTime; + userTableStr += ''; + userTableStr += data[j].reportTime; + userTableStr += '
'; $("#contentPrintTable").html(userTableStr); + //为某一列或者 某一行 添加样式 + addPrintTableCss(data.length,0,"printTable","print-title"); } } }); + var title='

'; + title+='
:'+$('[name="searchTaskStartTime"]').val()+'—'+$('[name="searchTaskEndTime"]').val(); + title+='    '; + title+=':'+$('[name="searchReportStartTime"]').val()+'—'+$('[name="searchReportEndTime"]').val()+'
'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); } diff --git a/src/main/webapp/WEB-INF/views/report/ipRangeReportList.jsp b/src/main/webapp/WEB-INF/views/report/ipRangeReportList.jsp index c2c4c1184..6eb418da6 100644 --- a/src/main/webapp/WEB-INF/views/report/ipRangeReportList.jsp +++ b/src/main/webapp/WEB-INF/views/report/ipRangeReportList.jsp @@ -51,36 +51,61 @@ dataType:"json", success:function(data){ if(data !=null){ + var thData=$('#contentTable thead tr th'); var userTableStr=''; - userTableStr +=''; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; - userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } userTableStr += ''; userTableStr += ''; userTableStr += ''; for(var j=0;j") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } + userTableStr += ''; } userTableStr +=''; userTableStr +='
'; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; - userTableStr += ''; + for (var i = 0; i < thData.length; i++) { + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += '
'; + userTableStr += data[j].ipStart; + userTableStr += ''; + userTableStr += data[j].ipEnd; + userTableStr += ''; + userTableStr += data[j].ipSub; + userTableStr += ''; + userTableStr += data[j].country; + userTableStr += ''; + userTableStr += data[j].desc; + userTableStr += '
'; @@ -88,11 +113,15 @@ } } }); + //为某一列或者 某一行 添加样式 +// addPrintTableCss(4,2,"printTable","print-title"); + var title='

'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); } diff --git a/src/main/webapp/WEB-INF/views/report/list.jsp b/src/main/webapp/WEB-INF/views/report/list.jsp index a5492f6da..da53f0f76 100644 --- a/src/main/webapp/WEB-INF/views/report/list.jsp +++ b/src/main/webapp/WEB-INF/views/report/list.jsp @@ -429,28 +429,50 @@ function customColumnClick(){ } //打印 function doPrint() { - var reportBusinessType=$("#reportBusinessType").val() - var tableId="tagTable"; - if(reportBusinessType=="label_report"){ + + document.getElementById("tabTablePrint").scrollTop = 0; + $('th').css('transform','translateY(0px)'); + $('thead tr').css('position','relative'); + $('th').css('border','1px solid rgb(255, 255, 255)'); + $('th').css('background-clip','padding-box'); + + var reportBusinessType=$("#reportBusinessType").val() + var tableId="tagTable"; + var tabTitleName=""; + if(reportBusinessType=="label_report"){ tableId="tagTable"; - }else if(reportBusinessType=="lwhh_report"){ + tabTitleName=""; + }else if(reportBusinessType=="lwhh_report"){ tableId="lwhhTable"; + tabTitleName=""; }else if(reportBusinessType=="src_ip_report"){ tableId="contentTable1"; + tabTitleName=""; }else if(reportBusinessType=="attr_type_report"){ tableId="attrTypeTable"; + tabTitleName=""; }else if(reportBusinessType=="dest_ip_report"){ tableId="destIpTable"; + tabTitleName=""; }else if(reportBusinessType=="isp_report"){ tableId="entranceIdTable"; + tabTitleName=""; } $("#"+tableId+" tbody tr").removeAttr("style"); - $("#"+tableId).print({ + //为某一列或者 某一行 添加样式 + addPrintTableCss(1,0,tableId,"print-title"); + var timeType = $("#reportType").find("option:selected").text(); + var time = $("#intype").val(); + var title='

'+$("[name=cfgName2]").val()+'()

'; + title+='
'+timeType+'   '+time+'   '+tabTitleName+'
'; + $("#"+tableId).print({ globalStyles: true, iframe: true, - append: null - }); + append: null, + prepend: title + }); + $("#"+tableId+" tbody td").removeClass("print-title"); pagination(30); } @@ -492,6 +514,10 @@ function customColumnClick(){ } num++; }); + if(column.length ==0 ){ + top.$.jBox.tip("", ""); + return; + } for(var i=1 ; i >"> -
+
in active diff --git a/src/main/webapp/WEB-INF/views/report/urlReportList.jsp b/src/main/webapp/WEB-INF/views/report/urlReportList.jsp index ce3361228..9ee192b39 100644 --- a/src/main/webapp/WEB-INF/views/report/urlReportList.jsp +++ b/src/main/webapp/WEB-INF/views/report/urlReportList.jsp @@ -72,40 +72,65 @@ dataType:"json", success:function(data){ if(data !=null){ + var thData=$('#contentTable thead tr th'); var userTableStr=''; - userTableStr +=''; + userTableStr +='
'; userTableStr += ''; userTableStr += ''; - userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } userTableStr += ''; userTableStr += ''; userTableStr += ''; for(var j=0;j") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += ''; + } + } + userTableStr += ''; } userTableStr +=''; userTableStr +='
'; - userTableStr += ''; - userTableStr += ''; + for (var i = 0; i < thData.length; i++) { + if (thData[i].style.display !="none" && thData[i].innerHTML=="") { + userTableStr += '
'; + userTableStr += data[j].url; + userTableStr += ''; + userTableStr += data[j].ipCount; + userTableStr += ''; + userTableStr += data[j].connCount; + userTableStr += '
'; $("#contentPrintTable").html(userTableStr); + //为某一列或者 某一行 添加样式 + addPrintTableCss(data.length,0,"printTable","print-title"); } } }); + //为某一列或者 某一行 添加样式 +// addPrintTableCss(4,2,"printTable","print-title"); + var title='

'; + title+='
:'+$('[name="searchReportStartTime"]').val()+'    '; + title+=':'+$('[name="searchReportEndTime"]').val()+'
'; $("#contentPrintTable").css('display','block'); $("#contentPrintTable").print({ globalStyles: true, iframe: true, - append: null + append: null, + prepend: title }); $("#contentPrintTable").css('display','none'); } diff --git a/src/main/webapp/static/global/css/page.css b/src/main/webapp/static/global/css/page.css index ab961db4e..2805b83f3 100644 --- a/src/main/webapp/static/global/css/page.css +++ b/src/main/webapp/static/global/css/page.css @@ -94,4 +94,8 @@ margin-top: 20px; /* ʵʱģ,ӡťʾ */ .css-print{ display: none; +} +/* Ӵ */ +.print-title{ + font-weight:bold; } \ No newline at end of file diff --git a/src/main/webapp/static/global/scripts/common.js b/src/main/webapp/static/global/scripts/common.js index 63414074a..2b3edc3ad 100644 --- a/src/main/webapp/static/global/scripts/common.js +++ b/src/main/webapp/static/global/scripts/common.js @@ -1681,4 +1681,23 @@ function heightDiv(type){ } } window.onresize=heightDiv; - +/* 打印时,为列表的某一行或者某一列添加CSS样式 + * 例子:如果不用添加样式,就把行数和列数设置为0; + * var rowValue=3; 行数 + * var cellValue=2; 列数 + * var tableIdValue="printTable"; table的ID的值 + * var cssName="print-title print-background-color"; 要添加的class样式的名字 + * */ +function addPrintTableCss(rowValue,cellValue,tableIdValue,cssName){ + var rows=document.getElementById(""+tableIdValue).rows; + for (var i = 0; i < rows.length; i++) { + for (var k = 0; k 0 && rowValue 0 && cellValue<=rows[0].cells.length&& (cellValue-1)==k && i !=0) { + rows[i].cells[k].className=cssName; + } + } + } +} From 4a435620cb3fa768706fa8444834d8d9cf087631 Mon Sep 17 00:00:00 2001 From: zhangwei Date: Mon, 14 Jan 2019 17:09:58 +0600 Subject: [PATCH 20/45] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=8F=90=E7=A4=BA=E4=B8=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?confirm=EF=BC=8C=E5=8F=AAalert=E6=8F=90=E7=A4=BA=E5=8D=B3?= =?UTF-8?q?=E5=8F=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/views/login.jsp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/webapp/WEB-INF/views/login.jsp b/src/main/webapp/WEB-INF/views/login.jsp index adb6d01c5..49acd702c 100644 --- a/src/main/webapp/WEB-INF/views/login.jsp +++ b/src/main/webapp/WEB-INF/views/login.jsp @@ -192,14 +192,26 @@ }); // 如果在框架或在对话框中,则弹出提示并跳转到首页 - if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){ - top.$.jBox.alert("","",function(v,h,f){ - top.location = "${pageContext.request.contextPath }"; + /* if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){ + top.$.jBox.confirm("","",function(v,h,f){ + + if(v=="ok"){ + top.location = "${pageContext.request.contextPath }"; + }else{ + top.location = "${pageContext.request.contextPath }"; + } },{buttonsFocus:1}); top.$('.jbox-body .jbox-icon').css('top','55px'); + } */ + if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){ + top.$.jBox.prompt("", "", 'info', { + closed: function () { + top.location = "${pageContext.request.contextPath }"; + } + }); + top.$('.jbox-body .jbox-icon').css('top','55px'); } - }); \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgForm.jsp index d87764e0d..9c977be73 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgForm.jsp @@ -296,7 +296,14 @@ var delContent = function(contentClassName, addBtnClassName) { checked> - + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp index ee76ee2d5..3e99e112a 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp @@ -423,7 +423,14 @@ - + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/cfg/basicprotocol/form.jsp b/src/main/webapp/WEB-INF/views/cfg/basicprotocol/form.jsp index 9a3360851..e5a078a4d 100644 --- a/src/main/webapp/WEB-INF/views/cfg/basicprotocol/form.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/basicprotocol/form.jsp @@ -250,7 +250,14 @@ var switchRateLimitType=function(){ checked> - + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp b/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp index 58bb67dc9..5858baaef 100644 --- a/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp @@ -425,7 +425,14 @@ - + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/form.jsp b/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/form.jsp index 93237770e..ca66ac2d9 100644 --- a/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/form.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/form.jsp @@ -278,7 +278,14 @@ var switchRateLimitType=function(){ checked> - + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp b/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp index 5d58920d4..f81660b64 100644 --- a/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp @@ -423,7 +423,14 @@ - + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/help.jsp b/src/main/webapp/WEB-INF/views/help.jsp index 7faea12a9..cd35fa574 100644 --- a/src/main/webapp/WEB-INF/views/help.jsp +++ b/src/main/webapp/WEB-INF/views/help.jsp @@ -60,16 +60,12 @@ function showHelp(helpHref) {
-
-
+
-
+
- - -
From cdb8a3cb97d0526d760e6ec5e51ea44f2ff2f730 Mon Sep 17 00:00:00 2001 From: dongxiaoyan Date: Tue, 15 Jan 2019 09:23:14 +0800 Subject: [PATCH 23/45] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=89=E4=B8=AA?= =?UTF-8?q?=E6=B3=9B=E6=94=B6=E8=8F=9C=E5=8D=95=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=EF=BC=8C=E4=BF=84=E6=96=87=E6=98=AF=E5=9C=A8=E7=BA=BF=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=EF=BC=8C=E7=AD=89=E5=85=AC=E5=8F=B8=E4=BF=84=E6=96=87?= =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=8F=8D=E9=A6=88=E5=90=8E=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BF=84=E6=96=87=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/messages/message_en.properties | 5 ++++- src/main/resources/messages/message_ru.properties | 5 ++++- src/main/resources/messages/message_zh_CN.properties | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index b997a574c..58f6bb21a 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1471,4 +1471,7 @@ all_columns_hidden=All columns are hidden! no_log=No Log all_log=Meta And File Log framework_log=Meta Log -block_drop=Block(Drop) \ No newline at end of file +block_drop=Block(Drop) +mail_record=Mail Records +ssl_record=SSL Records +http_record=HTTP Records \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index fbafbef22..17ebb9353 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1475,4 +1475,7 @@ all_columns_hidden=All columns are hidden! no_log=\u041D\u0435\u0442 \u0416\u0443\u0440\u043D\u0430\u043B\u043E\u0432 all_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B \u0438 \u0416\u0443\u0440\u043D\u0430\u043B-\u0444\u0430\u0439\u043B framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B -block_drop=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435(\u041f\u0430\u0434\u0435\u043d\u0438\u0435) \ No newline at end of file +block_drop=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435(\u041f\u0430\u0434\u0435\u043d\u0438\u0435) +mail_record=\u043F\u043E\u0447\u0442\u0430 \u043E\u0442\u0447\u0435\u0442\u044B +ssl_record=SSL \u043E\u0442\u0447\u0435\u0442\u044B +http_record=HTTP \u043E\u0442\u0447\u0435\u0442\u044B \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 87e167a26..fd0b9b7d8 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1471,4 +1471,7 @@ all_columns_hidden=\u6240\u6709\u7684\u5217\u90fd\u9690\u85cf\u4e86\uff01 no_log=\u4E0D\u8BB0\u5F55 all_log=\u8BB0\u5F55\u6240\u6709\u65E5\u5FD7 framework_log=\u53EA\u8BB0\u5F55\u7ED3\u6784\u5316\u65E5\u5FD7 -block_drop=\u5C01\u5835(\u4E22\u5F03) \ No newline at end of file +block_drop=\u5C01\u5835(\u4E22\u5F03) +mail_record=\u90AE\u4EF6\u6CDB\u6536 +ssl_record=SSL\u6CDB\u6536 +http_record=HTTP\u6CDB\u6536 \ No newline at end of file From c78edb4d5092dabbfdff7c1111049a8fffa0756d Mon Sep 17 00:00:00 2001 From: zhangwei Date: Tue, 15 Jan 2019 10:33:38 +0600 Subject: [PATCH 24/45] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=8F=AF=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9=EF=BC=9A=201.?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=AE=A1=E6=A0=B8=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8F=AF=E7=BC=96=E8=BE=91=E4=BF=AE=E6=94=B9=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=90=8E=E7=8A=B6=E6=80=81=E5=8F=98=E6=9B=B4=E4=B8=BA?= =?UTF-8?q?=E2=80=9C=E6=9C=AA=E5=AE=A1=E6=A0=B8=EF=BC=88is=5Fvalid=3D0,is?= =?UTF-8?q?=5Faudit=3D0)=E2=80=9D=202.=E5=8F=96=E6=B6=88=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE=E5=8F=AF=E5=88=A0=E9=99=A4=EF=BC=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=90=8E=E9=85=8D=E7=BD=AE=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E8=A7=81=EF=BC=8Cis=5Fvalid=3D-1,is=5Faudit=3D3(=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E9=85=8D=E7=BD=AE=E6=9B=BE=E7=BB=8F=E7=94=9F=E6=95=88?= =?UTF-8?q?-=E3=80=8B=E5=8F=96=E6=B6=88=E5=AE=A1=E6=A0=B8-=E3=80=8B?= =?UTF-8?q?=E5=88=A0=E9=99=A4=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/tags/sys/delRow.tag | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 6fc9eff80..3f753d8cf 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -67,7 +67,7 @@ function del(url){ var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox"); if($(checkboxes).filter(":checked").length>0){ - if(validateAllNoAudit(checkboxes)){ + if(validateIsDelete(checkboxes)){ top.$.jBox.tip("", ""); return; }else{ @@ -114,8 +114,8 @@ function update(url){ top.$.jBox.tip("", ""); return; }else if(cked.val()==3){ - top.$.jBox.tip("", ""); - return; + /* top.$.jBox.tip("", ""); + return; */ } //处理asnIp,asn组下发过的ip配置不允许修改 if(cked.attr("asnGroup")&&cked.attr("isValid")){ @@ -370,6 +370,7 @@ function cancelPassOpt(url){ function validateAllNoAudit(checkboxes){ var flag = false; $(checkboxes).filter(":checked").each(function(){ + alert($(this).val()); if($(this).val()!=0){ flag = true; return; @@ -377,6 +378,18 @@ function cancelPassOpt(url){ }); return flag; } + //验证是否可删除 + function validateIsDelete(checkboxes){ + var flag = false; + $(checkboxes).filter(":checked").each(function(){ + alert($(this).val()); + if($(this).val()!=0 && $(this).val()!=3){//状态为3的配置为取消审核的配置,可删除 + flag = true; + return; + } + }); + return flag; + } //验证选择的配置,是否有审核通过的 function validatePass(checkboxes){ var flag = false; From d70f53301e84c69e2ea444a3d39f5e81ed35b24f Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Tue, 15 Jan 2019 14:12:33 +0800 Subject: [PATCH 25/45] =?UTF-8?q?IP=20Spoofing=E5=A2=9E=E5=8A=A0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/IpSpoofingTemplate.java | 31 ++++ .../java/com/nis/util/excel/ExportExcel.java | 33 +++- .../excel/thread/CheckIpFormatThread.java | 32 ++++ .../nis/web/controller/BaseController.java | 149 ++++++++++++++++++ .../configuration/ntc/IpController.java | 6 + .../configuration/PxyObjSpoofingIpPoolDao.xml | 4 +- .../java/com/nis/web/service/BaseService.java | 3 + .../configuration/InterceptCfgService.java | 2 + .../PxyObjSpoofingIpPoolService.java | 25 +++ .../sql/20190115/update_function_dicts.sql | 3 + 10 files changed, 285 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/nis/domain/configuration/template/IpSpoofingTemplate.java create mode 100644 src/main/resources/sql/20190115/update_function_dicts.sql diff --git a/src/main/java/com/nis/domain/configuration/template/IpSpoofingTemplate.java b/src/main/java/com/nis/domain/configuration/template/IpSpoofingTemplate.java new file mode 100644 index 000000000..13274838f --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/IpSpoofingTemplate.java @@ -0,0 +1,31 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +/** + * EXCEL IpSpoofing 导入模板 + * @author dell + * + */ +public class IpSpoofingTemplate extends IpAllTemplate{ + + private String userRegion1; + private String userRegion2; + + @ExcelField(title="spoofing",dictType="SPOOFING_IP_TYPE",align=2,sort=3) + public String getUserRegion1() { + return userRegion1; + } + public void setUserRegion1(String userRegion1) { + this.userRegion1 = userRegion1; + } + + @ExcelField(title="With",align=2,sort=4) + public String getUserRegion2() { + return userRegion2; + } + public void setUserRegion2(String userRegion2) { + this.userRegion2 = userRegion2; + } + +} diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 1b48a066f..932c07abd 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -522,7 +522,38 @@ public class ExportExcel { index++; } } - + + /** Ip Spoofing **/ + if("spoofing".equals(headerStr) && (region.getFunctionId().equals(214))){ + commentStr=""; + List dict=DictUtils.getDictList("SPOOFING_IP_TYPE"); + if(dict !=null && dict.size()>0){ + for (SysDataDictionaryItem sysDataDictionaryItem : dict) { + commentStr=commentStr+sysDataDictionaryItem.getItemCode()+"("+msgProp.getProperty(sysDataDictionaryItem.getItemValue(),sysDataDictionaryItem.getItemValue())+")\n"; + index++; + } + defaultValue=dict.get(0).getItemCode(); + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + 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(("With".equals(headerStr)) && (region.getFunctionId().equals(214))){ + commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; + index++; + //1、非空 + commentStr=commentStr+"▶"+msgProp.getProperty("required")+"\n"; + 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 e5f017850..d8c7ce563 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -521,6 +521,38 @@ public class CheckIpFormatThread implements Callable{ } } + // IpSpoofing + if (regionDict.getFunctionId().equals(214)) { + List dicts = DictUtils.getDictList("SPOOFING_IP_TYPE"); + if(StringUtils.isBlank(baseIpCfg.getUserRegion1())) { + baseIpCfg.setUserRegion1(dicts.get(0).getItemCode()); + } + String userRegion1 = baseIpCfg.getUserRegion1(); // SpooFing + String userRegion2 = baseIpCfg.getUserRegion2(); // With + if (StringUtils.isNotBlank(userRegion1)) { + boolean has = false; + for (SysDataDictionaryItem dict : dicts) { + if (dict.getItemCode().equals(userRegion1)) { + has = true; + break; + } + } + if (!has) { + errInfo.append(String.format(prop.getProperty("is_incorrect"),prop.getProperty("spoofing") + " ") + ";"); + } + } + String errMsg = null == prop.getProperty("With")?"With ":prop.getProperty("With"); + if(StringUtils.isBlank(userRegion2)) { + errInfo.append( + String.format(prop.getProperty("can_not_null"),errMsg + " ") + ";"); + }else { + String regex = "^((25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$"; + if(!userRegion2.matches(regex)) { + errInfo.append(String.format(prop.getProperty("is_in_wrong_format"),errMsg +" ") + ";"); + } + } + } + if (regionDict.getRegionType().equals(1)) { boolean srcIpEmpty = false; boolean destIpEmpty = false; diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index bdfce26ee..54c3a024f 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -73,6 +73,7 @@ import com.nis.domain.configuration.DnsResStrategy; import com.nis.domain.configuration.FileDigestCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.PxyObjKeyring; +import com.nis.domain.configuration.PxyObjSpoofingIpPool; import com.nis.domain.configuration.PxyObjTrustedCaCert; import com.nis.domain.configuration.PxyObjTrustedCaCrl; import com.nis.domain.configuration.RequestInfo; @@ -104,6 +105,7 @@ 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.IpSpoofingTemplate; import com.nis.domain.configuration.template.IpWhitelistTemplate; import com.nis.domain.configuration.template.P2pHashStringTemplate; import com.nis.domain.configuration.template.P2pIpTemplate; @@ -120,6 +122,7 @@ import com.nis.domain.maat.MaatCfg.NumBoundaryCfg; import com.nis.domain.maat.MaatCfg.StringCfg; import com.nis.domain.report.NtcPzReport; import com.nis.domain.maat.ToMaatBean; +import com.nis.domain.maat.ToMaatResult; import com.nis.domain.specific.ConfigGroupInfo; import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; @@ -142,6 +145,7 @@ import com.nis.util.excel.thread.CheckDnsResStrategyFormatThread; import com.nis.util.excel.thread.CheckIpFormatThread; import com.nis.util.excel.thread.CheckStringFormatThread; import com.nis.util.excel.thread.CheckTopicWebsiteFormatThread; +import com.nis.web.dao.configuration.PxyObjSpoofingIpPoolDao; import com.nis.web.security.UserUtils; import com.nis.web.service.ArchiveServcie; import com.nis.web.service.AreaService; @@ -151,6 +155,7 @@ import com.nis.web.service.LogService; import com.nis.web.service.MenuService; import com.nis.web.service.OfficeService; import com.nis.web.service.RoleService; +import com.nis.web.service.SpringContextHolder; import com.nis.web.service.SystemService; import com.nis.web.service.UserService; import com.nis.web.service.basics.AsnGroupInfoService; @@ -1435,6 +1440,9 @@ public class BaseController { }else if(regionDict.getFunctionId().equals(3)) { // IP白名单 BlockingQueue list = ei.getDataList(IpWhitelistTemplate.class ); ipPortCfgs=this.checkIpCfgMulity(errTip,serviceDict, regionDict,null,asnGroupInfos, list); + }else if(regionDict.getFunctionId().equals(214)) { // IpSpoofing + BlockingQueue list = ei.getDataList(IpSpoofingTemplate.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); @@ -1627,6 +1635,145 @@ public class BaseController { _ipPortCfgs.clear(); asnIpCfgs.clear(); } + }else if(regionDict.getFunctionId().intValue()==214) { // IpSpoofing + List _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); + while(!ipPortCfgs.isEmpty()) { + ipPortCfgs.drainTo(_ipPortCfgs, Constants.MAAT_JSON_SEND_SIZE); + List compileIds=Lists.newArrayList(); + List spoofingPoolIds=Lists.newArrayList(); + List regionIds=Lists.newArrayList(); + List groupIds=Lists.newArrayList(); + List numRegionGroupIds=Lists.newArrayList(); + List numRegionRegionIds=Lists.newArrayList(); + List spoofingPools = new ArrayList(); + PxyObjSpoofingIpPoolDao pxyObjSpoofingIpPoolDao = SpringContextHolder.getBean(PxyObjSpoofingIpPoolDao.class); + PxyObjSpoofingIpPoolService pxyObjSpoofingIpPoolService = SpringContextHolder.getBean(PxyObjSpoofingIpPoolService.class); + try { + compileIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size()); + spoofingPoolIds = ConfigServiceUtil.getId(1,_ipPortCfgs.size()); + if(isSend.equals("1")) { + groupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size()); + regionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + //需要获取数值域的id + if(serviceDict!=null&&serviceDict.getProtocolId()!=null&&serviceDict.getProtocolId()>0) { + numRegionGroupIds = ConfigServiceUtil.getId(2,_ipPortCfgs.size()); + numRegionRegionIds = ConfigServiceUtil.getId(3,_ipPortCfgs.size()); + } + } + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + + int ind=0; + for (BaseIpCfg cfg : _ipPortCfgs) { + cfg.setAction(serviceDict==null?null:serviceDict.getAction()); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + cfg.setFunctionId(regionDict.getFunctionId()); + if(isSend.equals("1")) { + cfg.setIsAudit(Constants.AUDIT_YES); + cfg.setIsValid(Constants.VALID_YES); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + if(groupIds!=null&&groupIds.size()==_ipPortCfgs.size()) { + cfg.setGroupId(groupIds.get(ind)); + } + if(regionIds!=null&®ionIds.size()==_ipPortCfgs.size()) { + cfg.setRegionId(regionIds.get(ind)); + } + if(serviceDict!=null&&serviceDict.getProtocolId()!=null) { + if(numRegionGroupIds!=null&&numRegionGroupIds.size()==_ipPortCfgs.size()) { + cfg.setNumberRegionGroupId(numRegionGroupIds.get(ind)); + } + if(numRegionRegionIds!=null&&numRegionRegionIds.size()==_ipPortCfgs.size()) { + cfg.setNumberRegionRegionId(numRegionRegionIds.get(ind)); + } + } + }else { + cfg.setIsAudit(Constants.AUDIT_NOT_YET); + cfg.setIsValid(Constants.VALID_NO); + } + cfg.setIsAreaEffective(0); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setAttribute(attribute); + cfg.setClassify(classify); + cfg.setServiceId(serviceDict==null?null:serviceDict.getServiceId()); + cfg.setTableName("ip_port_cfg"); + if(compileIds.size()==_ipPortCfgs.size()) { + cfg.setCompileId(compileIds.get(ind)); + } + + // 保存IP仿冒池 + PxyObjSpoofingIpPool spoofingPool = new PxyObjSpoofingIpPool(); + spoofingPool.setIpType(4);//ipv4 + spoofingPool.setIpAddress(cfg.getUserRegion2());//仿冒IP + spoofingPool.setProtocol(0); + if("dnat".equals(cfg.getUserRegion1().toLowerCase())){//spoofing server ip->dnat + spoofingPool.setDirection(1); + }else{ + spoofingPool.setDirection(2);//spoofing client ip->snat + } + spoofingPool.setPort("0"); + spoofingPool.setUserRegion("0"); + spoofingPool.setLocation(0); + spoofingPool.setServiceId(642); + spoofingPool.setAreaEffectiveIds("0"); + spoofingPool.setIsAreaEffective(0); + spoofingPool.setCreateTime(date); + spoofingPool.setCreatorId(UserUtils.getUser().getId()); + if(spoofingPoolIds.size()==_ipPortCfgs.size()) { + spoofingPool.setCompileId(spoofingPoolIds.get(ind)); + } + spoofingPool.setAction(1); + spoofingPool.setFunctionId(666); + spoofingPool.setRequestId(0); + if(isSend.equals("1")) { + spoofingPool.setIsAudit(Constants.AUDIT_YES); + spoofingPool.setIsValid(Constants.VALID_YES); + spoofingPool.setAuditorId(UserUtils.getUser().getId()); + spoofingPool.setAuditTime(date); + + }else { + spoofingPool.setIsValid(Constants.VALID_NO); + spoofingPool.setIsAudit(Constants.AUDIT_NOT_YET); + + } + pxyObjSpoofingIpPoolDao.insert(spoofingPool);//保存仿冒IP池配置 + cfg.setUserRegion3(String.valueOf(spoofingPool.getCfgId()));//将仿冒IP池配置ID作为策略组ID + + if(isSend.equals("1")) { + PxyObjSpoofingIpPool pool=new PxyObjSpoofingIpPool(); + pool.setCfgId(Long.valueOf(cfg.getUserRegion3())); + pool.setIsValid(cfg.getIsValid()); + pool.setIsAudit(cfg.getIsAudit()); + pool.setAuditorId(UserUtils.getUser().getId()); + pool.setAuditTime(date); + pxyObjSpoofingIpPoolDao.update(pool); + + spoofingPool.setAreaEffectiveIds("0"); + spoofingPool.setGroupId(spoofingPool.getCfgId().intValue()); + spoofingPools.add(spoofingPool); + } + + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo,new String[] {"cfgId"}); + cfgIndexInfos.add(cfgIndexInfo); + + ind++; + } + if(isSend.equals("1") && spoofingPools.size()>0) { + pxyObjSpoofingIpPoolService.auditSpoofingPool(spoofingPools); + } + ipCfgService.saveAndSend(regionDict, serviceDict, specificServiceCfg, _ipPortCfgs, cfgIndexInfos, appPolicyCfgs,appFeatureIndexs,asnNoMaps,isSend.equals("1")); + cfgIndexInfos.clear(); + appPolicyCfgs.clear(); + _ipPortCfgs.clear(); + } }else { List _ipPortCfgs=Lists.newArrayList(Constants.MAAT_JSON_SEND_SIZE); while(!ipPortCfgs.isEmpty()) { @@ -2297,6 +2444,8 @@ public class BaseController { } } else if(regionDict.getFunctionId().equals(3)) { // IP白名单 ei.loadInitParams(IpWhitelistTemplate.class, msgProp, regionDict, serviceDict); + } else if(regionDict.getFunctionId().equals(214)) { // IpSpoofing + ei.loadInitParams(IpSpoofingTemplate.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 51e6ed59a..3a02f7288 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 @@ -58,6 +58,7 @@ 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; +import com.nis.domain.configuration.template.IpSpoofingTemplate; import com.nis.domain.configuration.template.IpWhitelistTemplate; import com.nis.domain.configuration.template.P2pHashStringTemplate; import com.nis.domain.configuration.template.P2pIpTemplate; @@ -417,6 +418,11 @@ public class IpController extends BaseController{ excel.setDataList(pro,classList,null). write(request,response, fileName).dispose(); } + }else if(regionDict.getFunctionId().equals(214)){// IpSpoofing + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, IpSpoofingTemplate.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); diff --git a/src/main/java/com/nis/web/dao/configuration/PxyObjSpoofingIpPoolDao.xml b/src/main/java/com/nis/web/dao/configuration/PxyObjSpoofingIpPoolDao.xml index 399c7a143..da1d89aba 100644 --- a/src/main/java/com/nis/web/dao/configuration/PxyObjSpoofingIpPoolDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/PxyObjSpoofingIpPoolDao.xml @@ -180,8 +180,8 @@ )values ( #{cfgDesc,jdbcType=VARCHAR}, #{action,jdbcType=INTEGER}, - 0, - 0, + #{isValid,jdbcType=INTEGER}, + #{isAudit,jdbcType=INTEGER}, #{creatorId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{editorId,jdbcType=INTEGER}, diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index f13b626cf..3967913b6 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -2488,6 +2488,9 @@ public abstract class BaseService { maatCfg.setUserRegion(userRegion); }else if(regionDict.getFunctionId()==563 || regionDict.getFunctionId()==565 || regionDict.getFunctionId()==566) {// APP Payload、HTTP、SSL Admin maatCfg.setUserRegion(Constants.APP_ID_REGION+"="+_cfg.getAppCode()); + }else if(regionDict.getFunctionId()==214) { + String userRegion="nat_type="+_cfg.getUserRegion1()+";spoofing_ip_pool="+_cfg.getUserRegion3(); + maatCfg.setUserRegion(userRegion); } configCompileList.add(maatCfg); diff --git a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java index 071c1eca2..532dff991 100644 --- a/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/InterceptCfgService.java @@ -149,6 +149,8 @@ public class InterceptCfgService extends CrudService spoofingPool.setCreatorId(UserUtils.getUser().getId()); spoofingPool.setCompileId(spoofingPoolId); spoofingPool.setAction(1); + spoofingPool.setIsValid(0); + spoofingPool.setIsAudit(0); spoofingPool.setFunctionId(666); spoofingPool.setRequestId(0); pxyObjSpoofingIpPoolDao.insert(spoofingPool);//保存仿冒IP池配置 diff --git a/src/main/java/com/nis/web/service/configuration/PxyObjSpoofingIpPoolService.java b/src/main/java/com/nis/web/service/configuration/PxyObjSpoofingIpPoolService.java index ddceb2d5a..1999122fb 100644 --- a/src/main/java/com/nis/web/service/configuration/PxyObjSpoofingIpPoolService.java +++ b/src/main/java/com/nis/web/service/configuration/PxyObjSpoofingIpPoolService.java @@ -269,6 +269,31 @@ public class PxyObjSpoofingIpPoolService extends BaseService{ return gsonToJson(rangeCfg); } + + /** + * IP Spoofing配置导入时 下发仿冒IP池配置 + * @param spoofingPools + */ + public void auditSpoofingPool(List spoofingPools) { + //调用服务接口下发配置数据 + String json=gsonToJson(spoofingPools); + if(spoofingPools.size()>10) { + logger.info("欺骗IP池配置下发配置条数:" + spoofingPools.size()); + }else { + logger.info("欺骗IP池配置下发配置参数:" + json); + } + //调用服务接口下发配置 + try { + ToMaatResult result = ConfigServiceUtil.postCallbackCfg(json); + if(result!=null){ + logger.info("欺骗IP池配置下发响应信息:"+result.getMsg()); + } + } catch (Exception e) { + logger.error("欺骗IP池配置配置下发失败",e); + throw e; + } + + } } \ No newline at end of file diff --git a/src/main/resources/sql/20190115/update_function_dicts.sql b/src/main/resources/sql/20190115/update_function_dicts.sql new file mode 100644 index 000000000..16d095466 --- /dev/null +++ b/src/main/resources/sql/20190115/update_function_dicts.sql @@ -0,0 +1,3 @@ +-- IP Spoofing Import +UPDATE function_region_dict SET is_import = 1,config_protocol = '6,17' WHERE function_id = 214; +UPDATE function_service_dict SET is_import = 1 WHERE function_id = 214; \ No newline at end of file From 557f1e9383fce863ad12787d6f52bdca300e639d Mon Sep 17 00:00:00 2001 From: dongxiaoyan Date: Tue, 15 Jan 2019 15:12:16 +0800 Subject: [PATCH 26/45] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=B3=9B=E6=94=B6=E7=9A=84=E4=BF=84=E6=96=87=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/messages/message_ru.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 17ebb9353..63a8e577e 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1476,6 +1476,6 @@ no_log=\u041D\u0435\u0442 \u0416\u0443\u0440\u043D\u0430\u043B\u043E\u0432 all_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B \u0438 \u0416\u0443\u0440\u043D\u0430\u043B-\u0444\u0430\u0439\u043B framework_log=\u0421\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439 \u0416\u0443\u0440\u043D\u0430\u043B block_drop=\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435(\u041f\u0430\u0434\u0435\u043d\u0438\u0435) -mail_record=\u043F\u043E\u0447\u0442\u0430 \u043E\u0442\u0447\u0435\u0442\u044B -ssl_record=SSL \u043E\u0442\u0447\u0435\u0442\u044B -http_record=HTTP \u043E\u0442\u0447\u0435\u0442\u044B \ No newline at end of file +mail_record=\u0417\u0430\u043F\u0438\u0441\u0438 \u041F\u043E\u0447\u0442\u044B +ssl_record=SSL \u0417\u0430\u043F\u0438\u0441\u0438 +http_record=HTTP \u0417\u0430\u043F\u0438\u0441\u0438 \ No newline at end of file From 9b270be70804fe17cd74a9ad45e140538883f638 Mon Sep 17 00:00:00 2001 From: zhangwei Date: Tue, 15 Jan 2019 13:52:25 +0600 Subject: [PATCH 27/45] =?UTF-8?q?=E4=BF=AE=E6=94=B9app=20payload=E7=89=B9?= =?UTF-8?q?=E5=BE=81=E5=81=8F=E7=A7=BB=E9=87=8F=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/service/configuration/AppMultiFeatureCfgService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java b/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java index a6a294e52..3d1694ff6 100644 --- a/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AppMultiFeatureCfgService.java @@ -132,7 +132,7 @@ public class AppMultiFeatureCfgService extends BaseService { cfg.setMatchMethod(0); cfg.setHeaderType(null); //设置payload特征的偏移量表达之关键字字符串 - cfg.setCfgKeywords(cfg.getPayloadOffset()+"-"+cfg.getCfgKeywords().length()/2+":"+cfg.getCfgKeywords()); + cfg.setCfgKeywords(cfg.getPayloadOffset()+"-"+((cfg.getCfgKeywords().length()/2)+cfg.getPayloadOffset())+":"+cfg.getCfgKeywords()); appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); }else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ @@ -218,7 +218,7 @@ public class AppMultiFeatureCfgService extends BaseService { cfg.setMatchMethod(0); cfg.setHeaderType(null); //设置payload特征的偏移量表达之关键字字符串 - cfg.setCfgKeywords(cfg.getPayloadOffset()+"-"+cfg.getCfgKeywords().length()/2+":"+cfg.getCfgKeywords()); + cfg.setCfgKeywords(cfg.getPayloadOffset()+"-"+((cfg.getCfgKeywords().length()/2)+cfg.getPayloadOffset())+":"+cfg.getCfgKeywords()); appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg); }else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){ From a6c01d19acadb8817386d2ee5a69c47dce7d20d9 Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Tue, 15 Jan 2019 16:03:12 +0800 Subject: [PATCH 28/45] =?UTF-8?q?DDOS=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=B5=81=E9=87=8F=E9=98=88=E5=80=BC(bps)/(pps)=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=A2=9E=E5=8A=A0=E9=99=90=E5=88=B6=EF=BC=9B=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BFRule=20Name?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=B9=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/nis/util/excel/ExportExcel.java | 19 +++++++++++++++++-- .../excel/thread/CheckIpFormatThread.java | 15 +++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 932c07abd..b42ab7a7a 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -143,6 +143,16 @@ public class ExportExcel { String defaultValue=""; int index=0; String[] titleInfo=new String[3]; + + // Rule Name + if("config_describe".equals(headerStr)) { + commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; + index++; + //1、非空 + commentStr=commentStr+"▶"+msgProp.getProperty("required")+"\n"; + index++; + } + //p2p_hash_type if("p2p_hash_type".equals(headerStr)){ commentStr=""; @@ -403,13 +413,17 @@ public class ExportExcel { if("bps_threadshold".equals(headerStr)){ commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; index++; - commentStr=commentStr+msgProp.getProperty("input_integer")+"\n"; + commentStr=commentStr+"▶"+msgProp.getProperty("input_integer")+"\n"; + index++; + commentStr=commentStr+"▶"+msgProp.getProperty("min_value")+"1000000\n"; index++; } if("pps_threadshold".equals(headerStr)){ commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n"; index++; - commentStr=commentStr+msgProp.getProperty("input_integer")+"\n"; + commentStr=commentStr+"▶"+msgProp.getProperty("input_integer")+"\n"; + index++; + commentStr=commentStr+"▶"+msgProp.getProperty("min_value")+"1000\n"; index++; } if("group".equals(headerStr)) { @@ -1099,6 +1113,7 @@ public class ExportExcel { if(StringUtil.isEmpty(defaultValue)){ defaultValue="0"; } + defaultValue = region.getFunctionId().equals(301)?"1":defaultValue; } /*}*/ /*if(StringUtil.isEmpty(commentStr)){ 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 d8c7ce563..83def261f 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -378,16 +378,31 @@ public class CheckIpFormatThread implements Callable{ String.format(prop.getProperty("is_incorrect"), prop.getProperty("antiddos_protocol")) + ";"); } + if(bpsThreadshold==null) { errInfo.append( String.format(prop.getProperty("can_not_null"), prop.getProperty("bps_threadshold")) + ";"); + }else { + if(bpsThreadshold < 1000000) { + errInfo.append(prop.getProperty("bps_threadshold")+prop.getProperty("min_value")+"1000000;"); + }else if(String.valueOf(bpsThreadshold).length() > 18) { + errInfo.append(prop.getProperty("bps_threadshold")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":18") + ";"); + } } + if(ppsThreadshold==null) { errInfo.append( String.format(prop.getProperty("can_not_null"), prop.getProperty("pps_threadshold")) + ";"); + }else { + if(ppsThreadshold < 1000) { + errInfo.append(prop.getProperty("pps_threadshold")+prop.getProperty("min_value")+"1000;"); + }else if(String.valueOf(ppsThreadshold).length() > 18) { + errInfo.append(prop.getProperty("pps_threadshold")+prop.getProperty("length_error")+" "+String.format(prop.getProperty("max_length")+":18") + ";"); + } } + if("TCP_SYN".equals(antiddosProtocol)) { baseIpCfg.setProtocol(6); }else if("UDP_NTP".equals(antiddosProtocol)) { From 19fc9eb7af9d8145a8a0205a50e22e901ce67c88 Mon Sep 17 00:00:00 2001 From: zhangwenqing Date: Tue, 15 Jan 2019 16:50:46 +0800 Subject: [PATCH 29/45] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E7=AD=96=E7=95=A5=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E9=A1=B5action=E5=9B=BD=E9=99=85=E5=8C=96.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webapp/WEB-INF/include/excel/importModal.jsp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/include/excel/importModal.jsp b/src/main/webapp/WEB-INF/include/excel/importModal.jsp index 39b6c1f9e..0b5db22dc 100644 --- a/src/main/webapp/WEB-INF/include/excel/importModal.jsp +++ b/src/main/webapp/WEB-INF/include/excel/importModal.jsp @@ -47,7 +47,20 @@ checked> - + + + + + + + + + + + + + + From 78e4907fe0b03daeb4138f7543c3368b8348f391 Mon Sep 17 00:00:00 2001 From: wangxin Date: Tue, 15 Jan 2019 17:10:47 +0800 Subject: [PATCH 30/45] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=97=B6=E5=BC=B9=E5=87=BA=E7=9A=84alert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/tags/sys/delRow.tag | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 3f753d8cf..61cc4ca24 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -370,7 +370,7 @@ function cancelPassOpt(url){ function validateAllNoAudit(checkboxes){ var flag = false; $(checkboxes).filter(":checked").each(function(){ - alert($(this).val()); + //alert($(this).val()); if($(this).val()!=0){ flag = true; return; From 16d56e3f98a2a9855416a4ad70cedd6a5495b9c8 Mon Sep 17 00:00:00 2001 From: tanghao Date: Tue, 15 Jan 2019 17:47:30 +0800 Subject: [PATCH 31/45] =?UTF-8?q?1.=E6=97=AD=E6=97=A5=E5=9B=BE=E6=97=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=97=B6=E6=98=BE=E7=A4=BA=E5=AD=97=E4=BD=93?= =?UTF-8?q?=E6=81=A2=E5=A4=8D=E4=B8=BA=E7=99=BD=E8=89=B2=202.=E5=9B=BD?= =?UTF-8?q?=E5=AE=B6=E4=BB=A3=E7=90=86=E3=80=8B=E6=8B=A6=E6=88=AA=E7=AD=96?= =?UTF-8?q?=E7=95=A5=20=E5=AF=BC=E5=87=BA=E6=B2=A1=E6=9C=89=E4=B8=A2?= =?UTF-8?q?=E5=8C=85=E7=8E=87=203.=E5=9B=BD=E5=AE=B6=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E3=80=8B=E6=8B=A6=E6=88=AA=E7=AD=96=E7=95=A5=20=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E9=98=BB=E6=96=AD=E7=B1=BB=E5=9E=8B=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E7=A1=AE=204.=E5=9B=BD=E5=AE=B6=E4=BB=A3?= =?UTF-8?q?=E7=90=86=E3=80=8B=E7=BC=93=E5=AD=98=E7=AD=96=E7=95=A5=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=97=A0=E6=B3=95=E8=BF=87=E6=BB=A4=E9=98=BB?= =?UTF-8?q?=E6=96=AD=E7=B1=BB=E5=9E=8B=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/proxy/InterceptController.java | 14 +++++++++++++- .../webapp/WEB-INF/views/cfg/proxy/cache/list.jsp | 2 +- src/main/webapp/static/pages/scripts/echart.js | 5 +++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java index cec2841c1..c3f01a4e5 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/InterceptController.java @@ -329,6 +329,18 @@ public class InterceptController extends CommonController { httpUrlList.addAll(maps.get("NTC_HTTP_URL")); ipList.addAll(maps.get("PXY_INTERCEPT_IP")); pktBinList.addAll(maps.get("PXY_INTERCEPT_PKT_BIN")); + if (entity.getFunctionId() == 200){ + Properties msgProp = getMsgProp(); + if(cfg.getAction().equals(1)) { + cfg.setUserRegion5(msgProp.getProperty("intercept")); + }else if(cfg.getAction().equals(48)) { + cfg.setUserRegion5(msgProp.getProperty("action_spoofing")); + }else if(cfg.getAction().equals(128)) { + cfg.setUserRegion5(msgProp.getProperty("bypass")); + }else { + cfg.setUserRegion5(msgProp.getProperty(DictUtils.getDictLabels("SERVICE_ACTION", cfg.getAction().toString(), cfg.getAction().toString()))); + } + } } pktBinList = BaseStringCfg.replaceBaseKeyList(pktBinList); httpUrlList = BaseStringCfg.baseHexList(httpUrlList); @@ -344,7 +356,7 @@ public class InterceptController extends CommonController { dataMap.put("PXY_INTERCEPT_IP", ipList); dataMap.put("PXY_INTERCEPT_PKT_BIN", pktBinList); } else if (entity.getFunctionId() == 200) {// IP拦截 - cfgIndexInfoNoExport = ",policy_name,group_name,userregion3,userregion4,userregion5,userregion2,&userregion1:intercept_file_strategy-"; + cfgIndexInfoNoExport = ",policy_name,group_name,userregion3,userregion4,block_type,&userregion1:intercept_file_strategy-userregion2:ratelimit-userregion5:block_type"; titleList.add("PXY_INTERCEPT_IP"); classMap.put("PXY_INTERCEPT_IP", IpPortCfg.class); noExportMap.put("PXY_INTERCEPT_IP", ipPortInfoNoExport); diff --git a/src/main/webapp/WEB-INF/views/cfg/proxy/cache/list.jsp b/src/main/webapp/WEB-INF/views/cfg/proxy/cache/list.jsp index a7b70a08a..a3151175a 100644 --- a/src/main/webapp/WEB-INF/views/cfg/proxy/cache/list.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/proxy/cache/list.jsp @@ -355,7 +355,7 @@ - + diff --git a/src/main/webapp/static/pages/scripts/echart.js b/src/main/webapp/static/pages/scripts/echart.js index 9d31f02f6..716bc023f 100644 --- a/src/main/webapp/static/pages/scripts/echart.js +++ b/src/main/webapp/static/pages/scripts/echart.js @@ -1377,6 +1377,11 @@ function echart_topic_domain(rs){ marginTop:50, marginBottom:10 }, + noData:{ + style: {//设置字体颜色 + color: '#fff', + }, + }, exporting: { allowHTML:true, filename:'Service'+addDateName(), From 57a490b1cc91fda57440fff251b54ced7e1d5d0e Mon Sep 17 00:00:00 2001 From: wangxin Date: Tue, 15 Jan 2019 17:48:35 +0800 Subject: [PATCH 32/45] =?UTF-8?q?(1)=E4=BF=AE=E5=A4=8DIP=20Payload?= =?UTF-8?q?=E5=AF=BC=E5=85=A5Search=20In=E5=AD=97=E6=AE=B5=E7=9E=8E?= =?UTF-8?q?=E5=A1=AB=E4=B8=8D=E9=AA=8C=E8=AF=81=E7=9A=84bug,=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E7=9B=B4=E6=8E=A5=E4=B8=8B=E5=8F=91=E5=8A=A0=E5=85=A5?= =?UTF-8?q?userregion=E7=9A=84=E5=A4=84=E7=90=86=20(2)=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=B6=E7=9A=84alert=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nis/util/excel/thread/CheckIpFormatThread.java | 2 +- src/main/java/com/nis/web/service/BaseService.java | 14 ++++++++++++++ src/main/webapp/WEB-INF/tags/sys/delRow.tag | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) 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 83def261f..cdb9637c4 100644 --- a/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java +++ b/src/main/java/com/nis/util/excel/thread/CheckIpFormatThread.java @@ -173,7 +173,7 @@ public class CheckIpFormatThread implements Callable{ String userRegion1 = baseIpCfg.getUserRegion1(); if (StringUtils.isNotBlank(userRegion1)) { Object val = DictUtils.getDictLabel("INTERCEPT_REPLACE_ZONE", userRegion1); - if (StringUtils.isBlank(val.toString())) { + if (StringUtils.isBlank(val.toString())||"默认".equals(val.toString())) { errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("replace_zone")) + ";"); } diff --git a/src/main/java/com/nis/web/service/BaseService.java b/src/main/java/com/nis/web/service/BaseService.java index 3967913b6..c5578c7eb 100644 --- a/src/main/java/com/nis/web/service/BaseService.java +++ b/src/main/java/com/nis/web/service/BaseService.java @@ -2491,6 +2491,20 @@ public abstract class BaseService { }else if(regionDict.getFunctionId()==214) { String userRegion="nat_type="+_cfg.getUserRegion1()+";spoofing_ip_pool="+_cfg.getUserRegion3(); maatCfg.setUserRegion(userRegion); + }else if(regionDict.getFunctionId()==212) { + String userRegion=Constants.REPLACE_ZONE_KEY+"="+_cfg.getUserRegion1(); + String substitute=""; + String userRegion2=StringUtil.isEmpty(_cfg.getUserRegion2()) ? "":_cfg.getUserRegion2(); + substitute="/"; + userRegion2 = BaseService.replaceContentEscape(userRegion2); + substitute=substitute+userRegion2; + + String userRegion3=StringUtil.isEmpty(_cfg.getUserRegion3()) ? "":_cfg.getUserRegion3(); + userRegion3 = BaseService.replaceContentEscape(userRegion3); + substitute=substitute+"/"+userRegion3; + + userRegion=userRegion+";"+Constants.REPLACE_SUBSTITUTE_KEY+"="+substitute; + maatCfg.setUserRegion(userRegion); } configCompileList.add(maatCfg); diff --git a/src/main/webapp/WEB-INF/tags/sys/delRow.tag b/src/main/webapp/WEB-INF/tags/sys/delRow.tag index 61cc4ca24..e7d8d79f2 100644 --- a/src/main/webapp/WEB-INF/tags/sys/delRow.tag +++ b/src/main/webapp/WEB-INF/tags/sys/delRow.tag @@ -382,7 +382,7 @@ function cancelPassOpt(url){ function validateIsDelete(checkboxes){ var flag = false; $(checkboxes).filter(":checked").each(function(){ - alert($(this).val()); + //alert($(this).val()); if($(this).val()!=0 && $(this).val()!=3){//状态为3的配置为取消审核的配置,可删除 flag = true; return; From b5fd91b75c4d104c4a62b26a2ac47962da504e9e Mon Sep 17 00:00:00 2001 From: tanghao Date: Tue, 15 Jan 2019 18:20:08 +0800 Subject: [PATCH 33/45] =?UTF-8?q?=E5=9B=BD=E5=AE=B6=E4=BB=A3=E7=90=86?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E7=AD=96=E7=95=A5=E4=B8=8B=E6=89=80=E6=9C=89?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=20=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=80=BB=E9=87=8F=E6=97=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proxy/HttpRedirectPolicyController.java | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java b/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java index 7dd206a95..0f9630db6 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/HttpRedirectPolicyController.java @@ -3,9 +3,11 @@ package com.nis.web.controller.configuration.proxy; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -295,9 +297,27 @@ public class HttpRedirectPolicyController extends BaseController { Page page = httpRedirectCfgService.getHttpRedirectList(pageInfo, entity); ipLists = page.getList(); } - + + + //日志总量 + List> logTotals=new ArrayList>(); + StringBuilder compileIds=new StringBuilder(",");//配置ids + Set set=new HashSet();//服务ids + + Properties prop = getMsgProp(); for (CfgIndexInfo str : ipLists) { + + if(str.getIsAudit()!=0){ + set.add(str.getServiceId()); + compileIds.append(str.getCompileId()+","); + }else{ + Map logTotal=new HashMap(); + logTotal.put("compileId", str.getCompileId()+""); + logTotal.put("sum",0L); + logTotals.add(logTotal); + } + if (entity.getFunctionId() != 210 && entity.getFunctionId() != 211) { String type = "RESPONSE_CODE"; if (entity.getFunctionId() == 207) { @@ -324,6 +344,21 @@ public class HttpRedirectPolicyController extends BaseController { } } } + + //获取日志总量 + StringBuilder serviceIds=new StringBuilder(","); + if(set.size()>0) { + for (Integer id : set) { + serviceIds.append(id+","); + } + String serviceIdsStr=serviceIds.toString().substring(1, serviceIds.length()-1); + String compileIdsStr=compileIds.toString().substring(1, compileIds.length()-1); + if(!StringUtils.isBlank(serviceIdsStr)&&!StringUtils.isBlank(compileIdsStr)){ + List> logs = getLogTotal( null,serviceIdsStr,compileIdsStr); + logTotals.addAll(logs); + } + } + String cfgIndexInfoNoExport = ",policy_name,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; if (entity.getFunctionId() == 207) { cfgIndexInfoNoExport = ",policy_name,group_name,userregion3,userregion4,userregion5,&userregion1:response_code-userregion2:response_content-"; @@ -393,6 +428,14 @@ public class HttpRedirectPolicyController extends BaseController { httpResBodyList.addAll(maps.get("NTC_HTTP_RES_BODY")); ipPortList.addAll(maps.get("NTC_UNIVERSAL_IP")); subscribeIdList.addAll(maps.get("NTC_SUBSCRIBE_ID")); + + for (Map logTotal : logTotals) { + if(cfg.getCompileId().equals(Integer.parseInt((String) logTotal.get("compileId")))){ + cfg.setTotalLogs((Long)logTotal.get("sum")); + break; + } + } + } httpUrlList = BaseStringCfg.replaceBaseKeyList(httpUrlList); httpReqHdrList = ComplexkeywordCfg.replaceComplexKeyList(httpReqHdrList); From 90a56b5e83bbb29facc713a900cdb5f0c08d87a3 Mon Sep 17 00:00:00 2001 From: leijun Date: Tue, 15 Jan 2019 18:49:28 +0800 Subject: [PATCH 34/45] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E8=B6=8B=E5=8A=BF=E5=9B=BE?= =?UTF-8?q?=20js=E5=9B=BD=E9=99=85=E5=8C=96=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=B6=8B=E5=8A=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../configuration/LogSearchController.java | 113 ++++- .../WEB-INF/views/cfg/logCfgTrendList.jsp | 408 ++++++++++++++++++ src/main/webapp/WEB-INF/views/home.jsp | 1 + .../1.11.0/localization/messages_en.js | 3 +- .../1.11.0/localization/messages_ru.js | 3 +- .../1.11.0/localization/messages_zh.js | 3 +- .../webapp/static/global/scripts/pzLog.js | 21 +- 7 files changed, 546 insertions(+), 6 deletions(-) create mode 100644 src/main/webapp/WEB-INF/views/cfg/logCfgTrendList.jsp diff --git a/src/main/java/com/nis/web/controller/configuration/LogSearchController.java b/src/main/java/com/nis/web/controller/configuration/LogSearchController.java index 32ecb96fc..46075e331 100644 --- a/src/main/java/com/nis/web/controller/configuration/LogSearchController.java +++ b/src/main/java/com/nis/web/controller/configuration/LogSearchController.java @@ -1,14 +1,32 @@ package com.nis.web.controller.configuration; +import java.net.URISyntaxException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - +import org.apache.http.client.utils.URIBuilder; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; - +import com.beust.jcommander.internal.Maps; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; import com.nis.domain.log.BaseLogEntity; +import com.nis.util.Constants; +import com.nis.util.StringUtil; +import com.nis.util.httpclient.HttpClientUtil; import com.nis.web.controller.BaseController; +import net.sf.json.JSONObject; @Controller @RequestMapping("${adminPath}/toLogSearch") @@ -36,4 +54,95 @@ public class LogSearchController extends BaseController{ attr.addAttribute("isLogTotalSearch", entity.getIsLogTotalSearch()); return "redirect:"+adminPath+logUrl; } + + + @RequestMapping(value = {"logTrend",""}) + public String logTrend(Model model,BaseLogEntity entity,String cfgId,RedirectAttributes attr, HttpServletRequest request, + HttpServletResponse response) { + Calendar cal = Calendar. getInstance (); + cal.setTime(new Date()); + String now = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//获取到完整的时间 + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + String oneHoursAgo = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime()); + model.addAttribute("beginDate", oneHoursAgo); + model.addAttribute("endDate", now); + model.addAttribute("cfgId", cfgId); + return "/cfg/logCfgTrendList"; + } + + @RequestMapping(value="actionLogTrend") + @ResponseBody + public List actionTrans(String cfgId,String beginDate,String endDate){ + Map fromJsonList = new HashMap(); + List resultList = new ArrayList(); + String url = Constants.LOG_BASE_URL+Constants.NTC_PZ_REPORT; + url=url+"?searchBusinessType=2&searchCfgId="+cfgId; + try { + //String url="http://192.168.10.204:9999/galaxy-service/service/log/v1/ntcPzReport?searchBusinessType=2&searchReportStartTime=2018-12-29%2000:00:00&searchReportEndTime=2018-12-30%2000:00:00"; + url = urlAddDate(url,beginDate,endDate); + //String json=ConfigServiceUtil.getReport(url.toString(), null); + String json = HttpClientUtil.get(url); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(json, new TypeToken(){}.getType()); + fromJsonList=(Map) fromJsonList.get("data"); + logger.debug("日志趋势数据"+fromJsonList); + JSONObject obj=JSONObject.fromObject(json); + resultList =getList(fromJsonList); + + } catch (Exception e) { + e.printStackTrace(); + resultList.add(Maps.newHashMap("error","request_service_failed")); + } + return resultList; + } + + public List getList(Map dateList){ + List> resultList = new ArrayList>(); + try { + List> mapList=(List>) dateList.get("list"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Map maps=new HashMap(); + List list=new ArrayList(); + Double total=0.0; + for (Map map : mapList) { + Double[] logs=new Double[2]; + Double sum=Double.valueOf(String.valueOf(map.get("sum"))); + Double date=Double.valueOf(sdf.parse(String.valueOf(map.get("reportTime"))).getTime()); + total+=sum; + logs[0]=date; + logs[1]=sum; + list.add(logs); + } + maps.put("sum",total); + maps.put("result", list); + resultList.add(maps); + } catch (Exception e) { + e.printStackTrace(); + } + return resultList; + } + + /** + * + * + * url路径时间参数格式化 + * @param url + * @param beginDate + * @param endDate + * @return + * @throws URISyntaxException + */ + public String urlAddDate(String url,String beginDate,String endDate) throws URISyntaxException{ + if(StringUtil.isBlank(beginDate)||StringUtil.isBlank(endDate)){ + Calendar cal = Calendar. getInstance (); + cal.setTime(new Date()); + endDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime());//获取到完整的时间 + cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY) - 1); + beginDate = new SimpleDateFormat( "yyyy-MM-dd HH:mm:00" ).format(cal.getTime()); + } + URIBuilder uriBuilder = new URIBuilder(url); + uriBuilder.addParameter("searchReportStartTime",beginDate); + uriBuilder.addParameter("searchReportEndTime",endDate); + return uriBuilder.toString(); + } } diff --git a/src/main/webapp/WEB-INF/views/cfg/logCfgTrendList.jsp b/src/main/webapp/WEB-INF/views/cfg/logCfgTrendList.jsp new file mode 100644 index 000000000..612c3d6bf --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/logCfgTrendList.jsp @@ -0,0 +1,408 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + <spring:message code="log"/><spring:message code="trend"/> + + + + + +
+ <%-- --%> + +
+
+ + +
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+ +
+ + +
+
+ +
+
+
+
+ + <%-- --%> + + + + +
+ + +<%-- --%> + +<%-- --%> + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/home.jsp b/src/main/webapp/WEB-INF/views/home.jsp index 1df800b3a..28ceed752 100644 --- a/src/main/webapp/WEB-INF/views/home.jsp +++ b/src/main/webapp/WEB-INF/views/home.jsp @@ -343,6 +343,7 @@ background:#3d3d3d; +