diff --git a/src/main/java/com/nis/restful/RestBusinessCode.java b/src/main/java/com/nis/restful/RestBusinessCode.java index 7a2446f..39c8f78 100644 --- a/src/main/java/com/nis/restful/RestBusinessCode.java +++ b/src/main/java/com/nis/restful/RestBusinessCode.java @@ -407,6 +407,10 @@ public enum RestBusinessCode { */ SrcIpEQDstIp(4002303,"IP类域-srcIp和dstIp不能相同"), + /** + * IP类域配置的addrType的值只能为4(IPV4)、6(IPV6)、46(4OVER6隧道)、64(6OVER4隧道)、10(全部) + */ + AddrTypeIsWrongRange(4002304,"IP类域配置的addrType的值只能为4(IPV4)、6(IPV6)、46(4OVER6隧道)、64(6OVER4隧道)、10(全部)"), /** * 字符串域配置的exprType的值只能是0(无表达式)或者1(与表达式) */ diff --git a/src/main/java/com/nis/util/CompileVal.java b/src/main/java/com/nis/util/CompileVal.java index 19c73b4..972157f 100644 --- a/src/main/java/com/nis/util/CompileVal.java +++ b/src/main/java/com/nis/util/CompileVal.java @@ -766,7 +766,12 @@ public class CompileVal { } public static void serviceIpRegionVal(IpRegion ipRegion, Long compileId, String listName) throws Exception { - + int addrType = ipRegion.getAddrType().intValue(); + if (!(addrType == 4|| addrType == 6 || addrType == 46|| addrType == 64 || addrType ==10)) { + throw new RestServiceException("编译配置id为" + compileId + "的配置中" + listName + "中regionId为" + ipRegion.getRegionId() + + "的域配置addrType的值只能为4(IPV4)、6(IPV6)、46(4OVER6隧道)、64(6OVER4隧道)、10(全部)", + RestBusinessCode.AddrTypeIsWrongRange.getValue()); + } validateIpAndMask(ipRegion, compileId, listName); if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) { diff --git a/src/main/java/com/nis/util/GroupReuseVal.java b/src/main/java/com/nis/util/GroupReuseVal.java index e1086b1..6548f5c 100644 --- a/src/main/java/com/nis/util/GroupReuseVal.java +++ b/src/main/java/com/nis/util/GroupReuseVal.java @@ -28,7 +28,7 @@ public class GroupReuseVal { List numRegionList = groupReuse.getNumRegionList(); for (NumRegion numRegion : numRegionList) { if (!StringUtil.isEmpty(numRegion.getTableName()) - && groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) { + && !groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) { throw new RestServiceException("numRegionList中的regionId为" + numRegion.getRegionId() + "的域配置tableName不是分组复用的域表", @@ -64,7 +64,7 @@ public class GroupReuseVal { // { if (!StringUtil.isEmpty(strRegion.getTableName()) - && groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) { + && !groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) { throw new RestServiceException("strRegionList中的regionId为" + strRegion.getRegionId() + "的域配置tableName不是分组复用的域表", @@ -99,7 +99,7 @@ public class GroupReuseVal { // !regionGroupIdList.contains(ipRegion.getGroupId())) { if (!StringUtil.isEmpty(ipRegion.getTableName()) - && groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) { + && !groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) { throw new RestServiceException("ipRegionList中的regionId为" + ipRegion.getRegionId() + "的域配置tableName不是分组复用的域表", @@ -355,6 +355,13 @@ public class GroupReuseVal { public static void serviceIpRegionVal(IpRegion ipRegion) throws Exception { + int addrType = ipRegion.getAddrType().intValue(); + if (!(addrType == 4|| addrType == 6 || addrType == 46|| addrType == 64 || addrType ==10)) { + throw new RestServiceException("ipRegionList中regionId为" + ipRegion.getRegionId() + + "的域配置addrType的值只能为4(IPV4)、6(IPV6)、46(4OVER6隧道)、64(6OVER4隧道)、10(全部)", + RestBusinessCode.AddrTypeIsWrongRange.getValue()); + } + validateIpAndMask(ipRegion); if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) { diff --git a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java index c8a95fa..df5d261 100644 --- a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java +++ b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java @@ -412,8 +412,10 @@ public class ServiceAndRDBIndexReal { Iterator mapIterator = map.keySet().iterator(); while (mapIterator.hasNext()) { String regionName = mapIterator.next().toString(); - if (StringUtil.isEmpty(groupReuseRegionMap.containsKey(regionName))) { - groupReuseRegionMap.put(regionName, map.get(regionName)); + if (!groupReuseRegionMap.containsKey(regionName)) { + List list = new ArrayList(); + list.addAll(map.get(regionName)); + groupReuseRegionMap.put(regionName, list); }else{ groupReuseRegionMap.get(regionName).addAll(map.get(regionName)); } diff --git a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java index de09f1b..357af8c 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -839,7 +839,7 @@ public class ConfigSourcesService extends BaseService { } } - if (StringUtil.isEmpty(maatConfig.getStrRegionMapList())) { + if (StringUtil.isEmpty(maatConfig.getNumRegionMapList())) { maatConfig.setNumRegionMapList(dstMapList); }else{ maatConfig.getNumRegionMapList().addAll(dstMapList); @@ -853,7 +853,7 @@ public class ConfigSourcesService extends BaseService { dstMapList.add(convertObjectToMap(region, IpRegion.class)); } } - if (StringUtil.isEmpty(maatConfig.getStrRegionMapList())) { + if (StringUtil.isEmpty(maatConfig.getIpRegionMapList())) { maatConfig.setIpRegionMapList(dstMapList); }else{ maatConfig.getIpRegionMapList().addAll(dstMapList); @@ -949,11 +949,11 @@ public class ConfigSourcesService extends BaseService { hasRegionFlag = true; List numRegionList = config.getNumRegionList(); for (NumRegion numRegion : numRegionList) { - if (!StringUtil.isEmpty(numRegion.getTableName()) - && groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) { + if (StringUtil.isEmpty(numRegion.getTableName()) + || !groupReuseRegionMap.get("numRegion").contains(numRegion.getTableName())) { throw new RestServiceException("numRegionList中的regionId为" + numRegion.getRegionId() - + "的域配置tableName不是分组复用的域表", + + "的域配置tableName为空或不是分组复用的域表", RestBusinessCode.TableNameUnReuse .getValue()); } @@ -967,11 +967,11 @@ public class ConfigSourcesService extends BaseService { hasRegionFlag = true; List strRegionList = config.getStrRegionList(); for (StrRegion strRegion : strRegionList) { - if (!StringUtil.isEmpty(strRegion.getTableName()) - && groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) { + if (StringUtil.isEmpty(strRegion.getTableName()) + || !groupReuseRegionMap.get("strRegion").contains(strRegion.getTableName())) { throw new RestServiceException("strRegionList中的regionId为" + strRegion.getRegionId() - + "的域配置tableName不是分组复用的域表", + + "的域配置tableName为空或不是分组复用的域表", RestBusinessCode.TableNameUnReuse .getValue()); } @@ -987,11 +987,11 @@ public class ConfigSourcesService extends BaseService { List ipRegionList = config.getIpRegionList(); for (IpRegion ipRegion : ipRegionList) { - if (!StringUtil.isEmpty(ipRegion.getTableName()) - && groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) { + if (StringUtil.isEmpty(ipRegion.getTableName()) + || !groupReuseRegionMap.get("ipRegion").contains(ipRegion.getTableName())) { throw new RestServiceException("ipRegionList中的regionId为" + ipRegion.getRegionId() - + "的域配置tableName不是分组复用的域表", + + "的域配置tableName为空或不是分组复用的域表", RestBusinessCode.TableNameUnReuse .getValue()); }