diff --git a/src/main/java/com/nis/domain/configuration/DnsResStrategy.java b/src/main/java/com/nis/domain/configuration/DnsResStrategy.java index b74add6d3..6c08485d6 100644 --- a/src/main/java/com/nis/domain/configuration/DnsResStrategy.java +++ b/src/main/java/com/nis/domain/configuration/DnsResStrategy.java @@ -32,7 +32,19 @@ public class DnsResStrategy extends BaseCfg { private String group1Name; @ExcelField(title="min_ttl",sort=4) private String miTtlmax; + //仅作导入使用 + private String ttl; + public String getTtl() { + return ttl; + } + + + public void setTtl(String ttl) { + this.ttl = ttl; + } + + @Override public void initDefaultValue() { this.resGroup2Id=0; diff --git a/src/main/java/com/nis/domain/configuration/template/DnsResStrategyTemplate.java b/src/main/java/com/nis/domain/configuration/template/DnsResStrategyTemplate.java new file mode 100644 index 000000000..81df09e59 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/template/DnsResStrategyTemplate.java @@ -0,0 +1,38 @@ +package com.nis.domain.configuration.template; + +import com.nis.util.excel.ExcelField; + +public class DnsResStrategyTemplate { + @ExcelField(title="policy_name",align=2,sort=1) + private String cfgDesc; + @ExcelField(title="group",align=2,sort=2) + private Integer resGroup1Id; + @ExcelField(title="res_group_num",align=2,sort=3) + private Integer resGroup1Num; + @ExcelField(title="min_ttl",align=2,sort=4) + private String ttl; + public String getCfgDesc() { + return cfgDesc; + } + public void setCfgDesc(String cfgDesc) { + this.cfgDesc = cfgDesc; + } + public Integer getResGroup1Id() { + return resGroup1Id; + } + public void setResGroup1Id(Integer resGroup1Id) { + this.resGroup1Id = resGroup1Id; + } + public Integer getResGroup1Num() { + return resGroup1Num; + } + public void setResGroup1Num(Integer resGroup1Num) { + this.resGroup1Num = resGroup1Num; + } + public String getTtl() { + return ttl; + } + public void setTtl(String ttl) { + this.ttl = ttl; + } +} diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index e2e828dce..2cbfb5857 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -60,6 +60,7 @@ public final class Constants { * IP验证正则 */ public static final String IPV4_IP_SUBNET_REGEXP=Configurations.getStringProperty("ipv4_ip_subnet_regexp", "*"); + public static final String IPV4_IP_SUBNET_REGEXP_ORIGINAL=Configurations.getStringProperty("ipv4_ip_subnet_regexp_original", "*"); public static final String IPV6_IP_SUBNET_REGEXP=Configurations.getStringProperty("ipv6_ip_subnet_regexp", "*"); public static final String IPV4_IP_RANGE_REGEXP=Configurations.getStringProperty("ipv4_ip_range_regexp", "*"); //0.0.0.1-2这种格式 diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index c9f9f7834..89c8ccc34 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -3,7 +3,6 @@ */ package com.nis.util.excel; -import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; @@ -16,7 +15,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Properties; @@ -29,7 +27,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.Comment; -import org.apache.poi.ss.usermodel.DataFormat; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.Row; @@ -41,7 +38,6 @@ import org.apache.poi.xssf.usermodel.XSSFClientAnchor; import org.apache.poi.xssf.usermodel.XSSFRichTextString; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.web.multipart.MultipartFile; import com.google.common.collect.Lists; import com.nis.domain.FunctionRegionDict; @@ -56,15 +52,10 @@ import com.nis.util.DictUtils; import com.nis.util.Encodes; import com.nis.util.Reflections; import com.nis.util.StringUtil; -import com.nis.web.dao.FunctionServiceDictDao; import com.nis.web.dao.basics.PolicyGroupInfoDao; import com.nis.web.dao.basics.SysDictInfoDao; import com.nis.web.dao.configuration.DnsResStrategyDao; import com.nis.web.service.SpringContextHolder; -import com.nis.web.service.configuration.DnsResStrategyService; -import com.sun.xml.internal.rngom.ast.builder.CommentList; - -import sun.util.logging.resources.logging; /** * 导出Excel文件(导出“XLSX”格式,支持大数据量导出 @see org.apache.poi.ss.SpreadsheetVersion) @@ -262,35 +253,36 @@ public class ExportExcel { index++; } if("policy_name".equals(headerStr)){ - - if(service.getAction().equals(1)){ - headerStr=""; - commentStr=""; - }else{ - List resStrategys=dnsResStrategyDao.findList(null, 1,1); - commentStr=commentStr+"0"+"("+msgProp.getProperty("no_strategy")+")\n"; - index++; - defaultValue="0"; - if(!StringUtil.isEmpty(resStrategys)){ - for (DnsResStrategy dnsResStrategy : resStrategys) { - commentStr=commentStr+dnsResStrategy.getCfgId()+"("+dnsResStrategy.getCfgDesc()+")\n"; - index++; + if(region.getFunctionId().intValue()!=400) {//400 policy_name为DNS响应策略 + if(service.getAction().equals(1)){ + headerStr=""; + commentStr=""; + }else{ + List resStrategys=dnsResStrategyDao.findList(null, 1,1); + commentStr=commentStr+"0"+"("+msgProp.getProperty("no_strategy")+")\n"; + index++; + defaultValue="0"; + if(!StringUtil.isEmpty(resStrategys)){ + for (DnsResStrategy dnsResStrategy : resStrategys) { + commentStr=commentStr+dnsResStrategy.getCfgId()+"("+dnsResStrategy.getCfgDesc()+")\n"; + index++; + } } } - } - if(StringUtil.isEmpty(headerStr)){ - headerStr=""; - commentStr=""; - }else{ - commentStr=msgProp.getProperty("select")+":\n"+commentStr; - index++; - index++; - commentStr=commentStr+"\n"+msgProp.getProperty("rule_desc_tip")+":\n"; - index++; - if(!StringUtil.isEmpty(defaultValue)){ - //2、默认值说明 - commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":"+defaultValue+"\n"; + if(StringUtil.isEmpty(headerStr)){ + headerStr=""; + commentStr=""; + }else{ + commentStr=msgProp.getProperty("select")+":\n"+commentStr; index++; + index++; + commentStr=commentStr+"\n"+msgProp.getProperty("rule_desc_tip")+":\n"; + index++; + if(!StringUtil.isEmpty(defaultValue)){ + //2、默认值说明 + commentStr=commentStr+"▶"+msgProp.getProperty("default_value")+":"+defaultValue+"\n"; + index++; + } } } } @@ -1157,6 +1149,31 @@ public class ExportExcel { index++; } } + }else if(region.getRegionType().equals(6)) { + if(region.getFunctionId().equals(400)) { + if("group".equals(headerStr)){ + commentStr=""; + List list=policyGroupInfoDao.findPolicyGroupInfosByType(1); + if(!StringUtil.isEmpty(list)){ + for (PolicyGroupInfo policyGroupInfo : list) { + commentStr=commentStr+policyGroupInfo.getGroupId()+"("+policyGroupInfo.getGroupName()+")\n"; + index++; + } + } + commentStr=msgProp.getProperty("select")+":\n"+commentStr; + index++; + } + if("res_group_num".equals(headerStr)) { + commentStr=msgProp.getProperty("input_integer")+":\n"+commentStr; + index++; + } + if("min_ttl".equals(headerStr)) { + commentStr="1-2"; + index++; + commentStr=msgProp.getProperty("example_tip")+":\n"+commentStr; + index++; + } + } } titleInfo[0]=headerStr; titleInfo[1]=commentStr; diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index 11a71dfca..0fc7af453 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -60,6 +60,7 @@ import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.DdosIpTemplate; import com.nis.domain.configuration.template.DnsComplexStringTemplate; import com.nis.domain.configuration.template.DnsIpTemplate; +import com.nis.domain.configuration.template.DnsResStrategyTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpCfgTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; @@ -79,6 +80,7 @@ import com.nis.util.DateUtils; import com.nis.util.DictUtils; import com.nis.util.JsonMapper; import com.nis.util.StringUtil; +import com.nis.util.excel.ExcelField; import com.nis.util.excel.ExportExcel; import com.nis.util.excel.ImportExcel; import com.nis.web.dao.configuration.IpCfgDao; @@ -1064,7 +1066,7 @@ public class BaseController { } return stringList; } - + public List checkComplexStringCfg(FunctionServiceDict serviceDict, FunctionRegionDict regionDict, List list) throws ServiceException { List stringList = new ArrayList(); @@ -1622,7 +1624,7 @@ public class BaseController { baseIpCfg.setIpPattern(2); if (baseIpCfg.getSrcIpAddress() .startsWith(Constants.IPV6_DEFAULT_IP_RANGE_VALUE.split("-")[0])) { - errInfo.append(prop.getProperty("client_ip") + errInfo.append(prop.getProperty("client_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_RANGE_VALUE.split("-")[0]) + ";"); @@ -1634,7 +1636,7 @@ public class BaseController { if (baseIpCfg.getSrcIpAddress() .startsWith(Constants.IPV6_DEFAULT_IP_SUBNET_VALUE.split("/")[0])) { errInfo.append( - prop.getProperty("client_ip") + prop.getProperty("client_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_SUBNET_VALUE.split("/")[0]) + ";"); @@ -1644,7 +1646,7 @@ public class BaseController { baseIpCfg.setDestIpAddress(Constants.IPV6_DEFAULT_IP_VALUE); baseIpCfg.setIpPattern(3); if (baseIpCfg.getSrcIpAddress().equals(Constants.IPV6_DEFAULT_IP_VALUE)) { - errInfo.append(prop.getProperty("client_ip") + String.format( + errInfo.append(prop.getProperty("client_ip")+" " + String.format( prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_VALUE) + ";"); } } @@ -1657,7 +1659,7 @@ public class BaseController { baseIpCfg.setIpPattern(2); if (baseIpCfg.getSrcIpAddress() .startsWith(Constants.IPV4_DEFAULT_IP_RANGE_VALUE.split("-")[0])) { - errInfo.append(prop.getProperty("client_ip") + errInfo.append(prop.getProperty("client_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_RANGE_VALUE.split("-")[0]) + ";"); @@ -1669,7 +1671,7 @@ public class BaseController { if (baseIpCfg.getSrcIpAddress() .startsWith(Constants.IPV4_DEFAULT_IP_SUBNET_VALUE.split("/")[0])) { errInfo.append( - prop.getProperty("client_ip") + prop.getProperty("client_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_SUBNET_VALUE.split("/")[0]) + ";"); @@ -1679,7 +1681,7 @@ public class BaseController { baseIpCfg.setDestIpAddress(Constants.IPV4_DEFAULT_IP_VALUE); baseIpCfg.setIpPattern(3); if (baseIpCfg.getSrcIpAddress().equals(Constants.IPV4_DEFAULT_IP_VALUE)) { - errInfo.append(prop.getProperty("client_ip") + String.format( + errInfo.append(prop.getProperty("client_ip")+" " + String.format( prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_VALUE) + ";"); } } @@ -1727,7 +1729,7 @@ public class BaseController { baseIpCfg.setIpPattern(2); if (baseIpCfg.getDestIpAddress() .startsWith(Constants.IPV6_DEFAULT_IP_RANGE_VALUE.split("-")[0])) { - errInfo.append(prop.getProperty("server_ip") + errInfo.append(prop.getProperty("server_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_RANGE_VALUE.split("-")[0]) + ";"); @@ -1739,7 +1741,7 @@ public class BaseController { if (baseIpCfg.getDestIpAddress() .startsWith(Constants.IPV6_DEFAULT_IP_SUBNET_VALUE.split("/")[0])) { errInfo.append( - prop.getProperty("server_ip") + prop.getProperty("server_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_SUBNET_VALUE.split("/")[0]) + ";"); @@ -1749,7 +1751,7 @@ public class BaseController { baseIpCfg.setSrcIpAddress(Constants.IPV6_DEFAULT_IP_VALUE); baseIpCfg.setIpPattern(3); if (baseIpCfg.getDestIpAddress().equals(Constants.IPV6_DEFAULT_IP_VALUE)) { - errInfo.append(prop.getProperty("server_ip") + String.format( + errInfo.append(prop.getProperty("server_ip")+" " + String.format( prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_VALUE) + ";"); } } @@ -1764,7 +1766,7 @@ public class BaseController { baseIpCfg.setIpPattern(2); if (baseIpCfg.getDestIpAddress() .startsWith(Constants.IPV4_DEFAULT_IP_RANGE_VALUE.split("-")[0])) { - errInfo.append(prop.getProperty("server_ip") + errInfo.append(prop.getProperty("server_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_RANGE_VALUE.split("-")[0]) + ";"); @@ -1776,7 +1778,7 @@ public class BaseController { if (baseIpCfg.getDestIpAddress() .startsWith(Constants.IPV4_DEFAULT_IP_SUBNET_VALUE.split("/")[0])) { errInfo.append( - prop.getProperty("server_ip") + prop.getProperty("server_ip")+" " + String.format(prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_SUBNET_VALUE.split("/")[0]) + ";"); @@ -1786,7 +1788,7 @@ public class BaseController { baseIpCfg.setSrcIpAddress(Constants.IPV4_DEFAULT_IP_VALUE); baseIpCfg.setIpPattern(3); if (baseIpCfg.getDestIpAddress().equals(Constants.IPV4_DEFAULT_IP_VALUE)) { - errInfo.append(prop.getProperty("server_ip") + String.format( + errInfo.append(prop.getProperty("server_ip")+" " + String.format( prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_VALUE) + ";"); } } @@ -1924,7 +1926,85 @@ public class BaseController { } return ipList; } - + public List checkDnsResStrategyCfg(FunctionServiceDict serviceDict, FunctionRegionDict regionDict, List list) + throws ServiceException { + List dnsResStrategies=Lists.newArrayList(); + Properties prop = this.getMsgProp(); + StringBuffer errTip = new StringBuffer(); + for (int i = 0; i < list.size(); i++) { + StringBuffer errInfo = new StringBuffer(); + DnsResStrategy dnsResStrategy=new DnsResStrategy(); + BeanUtils.copyProperties(list.get(i), dnsResStrategy); + String groupName=dnsResStrategy.getCfgDesc(); + if(StringUtils.isBlank(groupName)) { + errInfo.append(String.format(prop.getProperty("can_not_null"), + prop.getProperty("policy_name")) + ";"); + } + Integer resGroup1Id=dnsResStrategy.getResGroup1Id(); + if(resGroup1Id==null) { + errInfo.append(String.format(prop.getProperty("can_not_null"), + prop.getProperty("group")) + ";"); + }else { + PolicyGroupInfo info=policyGroupInfoService.getById(resGroup1Id); + if(info==null) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("group")) + ";"); + } + } + Integer resGroup1Num=dnsResStrategy.getResGroup1Num(); + if(resGroup1Num==null) { + errInfo.append(String.format(prop.getProperty("can_not_null"), + prop.getProperty("res_group_num")) + ";"); + } + String ttl=dnsResStrategy.getTtl(); + if(StringUtils.isBlank(ttl)) { + errInfo.append(String.format(prop.getProperty("can_not_null"), + prop.getProperty("min_ttl")) + ";"); + }else { + Pattern p=Pattern.compile("\\d+\\-\\d+"); + Matcher m=p.matcher(ttl); + if(!m.matches()) { + errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("min_ttl")) + ";"); + }else { + String minTtl=ttl.split("-")[0]; + String maxTtl=ttl.split("-")[1]; + Integer min=null,max=null; + try { + min=Integer.parseInt(minTtl); + } catch (Exception e) { + // TODO: handle exception + errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("min_ttl")) + ";"); + } + try { + max=Integer.parseInt(maxTtl); + } catch (Exception e) { + // TODO: handle exception + errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("min_ttl")) + ";"); + } + if(min.intValue()>max.intValue()) + {errInfo.append(String.format(prop.getProperty("is_incorrect"), + prop.getProperty("min_ttl")) + ";"); + }else { + dnsResStrategy.setMinTtl(min); + dnsResStrategy.setMaxTtl(max); + } + } + } + if (errInfo.toString().length() > 0) {// + errTip.append(String.format(prop.getProperty("line"), i + 2) + ","); + errTip.append(errInfo); + errTip.append("
"); + } + dnsResStrategies.add(dnsResStrategy); + } + if (errTip.toString().length() > 0) { + throw new ServiceException(errTip.toString()); + } + return dnsResStrategies; + } /** * 协议与端口验证规则 * @@ -2261,6 +2341,7 @@ public class BaseController { throws ServiceException { Properties prop = this.getMsgProp(); String matchType = ""; + Pattern ipv4IpSubnetOriginalRegexp = Pattern.compile(Constants.IPV4_IP_SUBNET_REGEXP_ORIGINAL); Pattern ipv4IpSubnetRegexp = Pattern.compile(Constants.IPV4_IP_SUBNET_REGEXP); Pattern ipv6IpSubnetRegexp = Pattern.compile(Constants.IPV6_IP_SUBNET_REGEXP); Pattern ipv4IpRangeRegexp = Pattern.compile(Constants.IPV4_IP_RANGE_REGEXP); @@ -2291,9 +2372,14 @@ public class BaseController { if (matcher.matches()) { matchType = "IPV6_IP_RANGE"; } else { - errInfo.append( - String.format(prop.getProperty("is_in_wrong_format"), prop.getProperty(ipName)) - + ";"); + matcher = ipv4IpSubnetOriginalRegexp.matcher(ip); + if(matcher.matches()) { + errInfo.append(prop.getProperty(ipName)+" "+prop.getProperty("ipv4_mask_range_tip")+ ";"); + }else { + errInfo.append( + String.format(prop.getProperty("is_in_wrong_format"), prop.getProperty(ipName)) + + ";"); + } } } } @@ -2763,68 +2849,7 @@ public class BaseController { * @exception @since * 1.0.0 */ - public static String checkIP(Properties prop, String ipName, String ip, String ipType, String ipPattern) { - StringBuffer msg = new StringBuffer(); - if (StringUtils.isBlank(ip)) { - msg.append(String.format(prop.getProperty("can_not_null"), ipName) + ";"); - } else { - if ("ipv4".equals(ipType)) { - if ("ip_subnet".equals(ipPattern)) { - Pattern pattern = Pattern.compile(Constants.IPV4_IP_SUBNET_REGEXP); - Matcher matcher = pattern.matcher(ip); - if (!matcher.matches()) {// 完全匹配 - msg.append(String.format(prop.getProperty("is_in_wrong_format"), ipName) + ";"); - } - } else if ("ip_range".equals(ipPattern)) { - Pattern pattern = Pattern.compile(Constants.IPV4_IP_RANGE_REGEXP); - Matcher matcher = pattern.matcher(ip); - if (!matcher.matches()) {// 完全匹配 - msg.append(String.format(prop.getProperty("is_in_wrong_format"), ipName) + ";"); - } - } else if ("ip".equals(ipPattern)) { - Pattern pattern = Pattern.compile(Constants.IPV4_IP_REGEXP); - Matcher matcher = pattern.matcher(ip); - if (!matcher.matches()) {// 完全匹配 - msg.append(String.format(prop.getProperty("is_in_wrong_format"), ipName) + ";"); - } - } - } else if ("ipv6".equals(ipType)) { - if ("ip_subnet".equals(ipPattern)) { - Pattern pattern = Pattern.compile(Constants.IPV6_IP_SUBNET_REGEXP); - Matcher matcher = pattern.matcher(ip); - if (!matcher.matches()) {// 完全匹配 - msg.append(String.format(prop.getProperty("is_in_wrong_format"), ipName) + ";"); - } - } else if ("ip_range".equals(ipPattern)) { - Pattern pattern = Pattern.compile(Constants.IPV6_IP_RANGE_REGEXP); - Matcher matcher = pattern.matcher(ip); - if (!matcher.matches()) {// 完全匹配 - msg.append(String.format(prop.getProperty("is_in_wrong_format"), ipName) + ";"); - } - } else if ("ip".equals(ipPattern)) { - Pattern pattern = Pattern.compile(Constants.IPV6_IP_REGEXP); - Matcher matcher = pattern.matcher(ip); - if (!matcher.matches()) {// 完全匹配 - msg.append(String.format(prop.getProperty("is_in_wrong_format"), ipName) + ";"); - } - } - } - } - return msg.toString(); - } - - /** - * - * checkIP(IP格式验证) (这里描述这个方法适用条件 – 可选) - * - * @param ipName - * @param ip - * @param ipType - * @param ipPattern - * @return String - * @exception @since - * 1.0.0 - */ + @Deprecated public static String checkIP(Properties prop, String ipName, String ip, Integer ipType, Integer ipPattern) { StringBuffer msg = new StringBuffer(); if (StringUtils.isBlank(ip)) { @@ -2874,7 +2899,7 @@ public class BaseController { } return msg.toString(); } - + @Deprecated public static String checkIp(Properties prop, String srcIpName, String srcIp, String destIpName, String destIp, Integer ipType, Integer ipPattern) { StringBuffer msg = new StringBuffer(); @@ -3176,6 +3201,7 @@ public class BaseController { List complexkeywordCfgs = new ArrayList(); List cfgIndexInfos = new ArrayList(); List appPolicyCfgs = new ArrayList(); + List dnsResStrategies=Lists.newArrayList(); FunctionRegionDict appRegion = null; if(serviceDict!=null) { String regionCode = serviceDict.getRegionCode(); @@ -3253,6 +3279,12 @@ public class BaseController { complexkeywordCfgs = this.checkComplexStringCfg(serviceDict, regionDict, list); } + }else if (regionDict.getRegionType().equals(6)) {// 回调类 + if (regionDict.getFunctionId().equals(400)) { + List list = ei.getDataList(DnsResStrategyTemplate.class, + this.getMsgProp(),regionDict); + dnsResStrategies = this.checkDnsResStrategyCfg(serviceDict, regionDict, list); + } } Date date = new Date(); String specServiceId = request.getParameter("appId"); @@ -3542,6 +3574,42 @@ public class BaseController { if(regionDict.getDictId().intValue()==11) { websiteCfgService.saveHttpResHeadCfg(complexkeywordCfgs); } + }else if(regionDict.getRegionType().equals(6)) { + if(regionDict.getFunctionId().equals(400)) { + List compileIds=Lists.newArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,dnsResStrategies.size()); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + int ind=0; + for(DnsResStrategy cfg:dnsResStrategies) { + cfg.setAction(serviceDict.getAction()); + cfg.setAuditorId(UserUtils.getUser().getId()); + cfg.setAuditTime(date); + cfg.setCfgRegionCode(regionDict.getConfigRegionCode()); + cfg.setCfgType(regionDict.getConfigRegionValue()); + cfg.setCreateTime(date); + cfg.setCreatorId(UserUtils.getUser().getId()); + cfg.setDoLog(1); + cfg.setFunctionId(regionDict.getFunctionId()); + cfg.setIsAudit(0); + cfg.setIsValid(0); + cfg.setIsAreaEffective(0); + cfg.setAttribute("0"); + cfg.setClassify("0"); + cfg.setLable("0"); + cfg.setRequestId(StringUtil.isEmpty(requestId) ? 0 : requestId); + cfg.setServiceId(serviceDict.getServiceId()); + cfg.setCompileId(compileIds.get(ind)); + ind++; + } + if(dnsResStrategies.size()>0) { + dnsResStrategyService.saveDnsResStrategies(dnsResStrategies); + } + } } if (cfgIndexInfos != null && cfgIndexInfos.size() > 0) { ipCfgService.saveCfgIndexOf(cfgIndexInfos); 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 f30592c6c..db22d9426 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 @@ -33,6 +33,7 @@ import com.nis.domain.configuration.template.ComplexStringAllTemplate; import com.nis.domain.configuration.template.DdosIpTemplate; import com.nis.domain.configuration.template.DnsComplexStringTemplate; import com.nis.domain.configuration.template.DnsIpTemplate; +import com.nis.domain.configuration.template.DnsResStrategyTemplate; import com.nis.domain.configuration.template.IpAllTemplate; import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; @@ -330,6 +331,14 @@ public class IpController extends BaseController{ write(request,response, fileName).dispose(); } } + if(regionDict.getRegionType().equals(6)){ + if(regionDict.getFunctionId().equals(400)){ + List classList=new ArrayList(); + ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, DnsResStrategyTemplate.class, 2); + excel.setDataList(this.getMsgProp(),classList,null). + write(request,response, fileName).dispose(); + } + } } //ip配置导入 diff --git a/src/main/java/com/nis/web/service/configuration/DnsResStrategyService.java b/src/main/java/com/nis/web/service/configuration/DnsResStrategyService.java index 9971b2c7d..f6174dfde 100644 --- a/src/main/java/com/nis/web/service/configuration/DnsResStrategyService.java +++ b/src/main/java/com/nis/web/service/configuration/DnsResStrategyService.java @@ -64,6 +64,12 @@ public class DnsResStrategyService extends BaseService{ return dnsResStrategy; } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void saveDnsResStrategies(List cfgs) { + for(DnsResStrategy cfg: cfgs) { + saveOrUpdate(cfg); + } + } + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveOrUpdate(DnsResStrategy entity){ Date createTime=new Date(); setAreaEffectiveIds(entity); @@ -78,17 +84,19 @@ public class DnsResStrategyService extends BaseService{ entity.setCreateTime(createTime); entity.setIsValid(0); entity.setIsAudit(0); - //调用服务接口获取compileId - List compileIds = new ArrayList(); - try { - compileIds = ConfigServiceUtil.getId(1,1); - } catch (Exception e) { - e.printStackTrace(); - logger.info("获取编译ID出错"); - throw new MaatConvertException(":"+e.getMessage()); - } - if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ - entity.setCompileId(compileIds.get(0)); + if(entity.getCompileId()==null||entity.getCompileId().intValue()==0) { + //调用服务接口获取compileId + List compileIds = new ArrayList(); + try { + compileIds = ConfigServiceUtil.getId(1,1); + } catch (Exception e) { + e.printStackTrace(); + logger.info("获取编译ID出错"); + throw new MaatConvertException(":"+e.getMessage()); + } + if(compileIds != null && compileIds.size() >0 && compileIds.get(0) != 0){ + entity.setCompileId(compileIds.get(0)); + } } dnsResStrategyDao.insert(entity); //修改 diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index f196d382b..96baeb0c4 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1271,8 +1271,8 @@ port_mask_comment_tip=Port and port mask must between 0 and 65535 multi_keywords_tip=Allow multiple keywords to be entered and multiple keywords to be replaced by line breaks. visible_keyword_tip=Single keyword is not allowed to enter invisible characters. single_keyword_tip=Only single key input is allowed. -ipv4_mask_range_tip=IP mask must between 16 and 32 -ipv6_mask_range_tip=IP Mask must between 2 and 128 +ipv4_mask_range_tip=IP\u63A9\u7801\u5FC5\u987B\u4ECB\u4E8E16\u548C32\u4E4B\u95F4 +ipv6_mask_range_tip=IP\u63A9\u7801\u5FC5\u987B\u4ECB\u4E8E2\u548C128\u4E4B\u95F4 letter_cancel_info=\u53D6\u6D88\u5BA1\u6838\u6765\u51FD import_tip_excel=\u8BF7\u9009\u62E9\u6587\u4EF6\u7ED3\u5C3E\u4E3A.xls\u6216\u8005.xlsx\u7684\u6709\u6548Excel\u6587\u4EF6\u5BFC\u5165 http_keyword=\u7F51\u9875\u5173\u952E\u5B57 diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 165c5ee66..1f4b789d8 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -540,4 +540,5 @@ cert_validate_file=x509 #证书校验成功的关键信息 cert_validate_success_info=Successful #ipv4 range新格式0.0.0.1-2 -ipv4_ip_range_regexp_new=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$ \ No newline at end of file +ipv4_ip_range_regexp_new=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$ +ipv4_ip_subnet_regexp_original=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[0-9]|2[0-9]|[0-9])$ \ No newline at end of file diff --git a/src/main/resources/sql/20181030/update_region.sql b/src/main/resources/sql/20181030/update_region.sql index 5458add73..851edbef2 100644 --- a/src/main/resources/sql/20181030/update_region.sql +++ b/src/main/resources/sql/20181030/update_region.sql @@ -26,4 +26,7 @@ UPDATE function_region_dict SET is_import=0,region_type=1,config_ip_port_show='3 UPDATE function_service_dict SET is_import=0 WHERE function_id=633; #DNS欺骗IP UPDATE function_region_dict SET is_import=1 WHERE function_id=401; -UPDATE function_service_dict SET is_import=1 WHERE function_id=401; \ No newline at end of file +UPDATE function_service_dict SET is_import=1 WHERE function_id=401; +#DNS策略 +UPDATE function_region_dict SET is_import=1 WHERE function_id=400; +UPDATE function_service_dict SET is_import=1 WHERE function_id=400; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/maintenance/dnsResStrategy/list.jsp b/src/main/webapp/WEB-INF/views/cfg/maintenance/dnsResStrategy/list.jsp index 8d140d821..d701a8c6f 100644 --- a/src/main/webapp/WEB-INF/views/cfg/maintenance/dnsResStrategy/list.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/maintenance/dnsResStrategy/list.jsp @@ -47,6 +47,23 @@ onClick="javascript:window.location='${ctx}/maintenance/dnsResStrategy/form?functionId=${cfg.functionId}'"> + + + + + + + + + + + + + + + @@ -426,6 +443,8 @@ - + + +<%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file