From 03d961e73f92d0a0855fbabf556aefa2be27a8f0 Mon Sep 17 00:00:00 2001 From: zhangdongxu Date: Thu, 30 Aug 2018 16:19:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=91=98=E8=A6=81?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=B7=A5=E5=85=B7=E8=8E=B7=E5=8F=96=E6=91=98?= =?UTF-8?q?=E8=A6=81=E4=BF=A1=E6=81=AF=E6=97=B6=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=9A=84=E4=BF=A1=E6=81=AF=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=EF=BC=8C=E5=8F=AF=E8=83=BD=E6=98=AF=E5=B7=A5=E5=85=B7=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E4=B8=8D=E6=AD=A3=E7=A1=AE=EF=BC=8C=E7=BB=99=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=8A=9B=E5=87=BA=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=9B=E5=A6=82=E6=9E=9C=E6=9C=89=E8=BF=94=E5=9B=9E=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BD=86=E6=98=AF=E4=B8=8D=E5=8C=85=E5=90=AB=E6=91=98?= =?UTF-8?q?=E8=A6=81=E9=83=A8=E5=88=86=EF=BC=8C=E8=BF=94=E5=9B=9E=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E4=B8=ADdigest=E5=B1=9E=E6=80=A7=E7=9A=84=E5=80=BC?= =?UTF-8?q?=E4=B8=BA""=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/restful/ConfigSourcesController.java | 4 ++-- .../com/nis/web/service/restful/ConfigSourcesService.java | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java b/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java index aeadd46..be2f50b 100644 --- a/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java +++ b/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java @@ -360,7 +360,7 @@ public class ConfigSourcesController extends BaseRestController { logger.info("摘要获取开始:---------------"); String digestStr = configSourcesService.getDigestGen(request.getRealPath(File.separator), tempFilePath); logger.info("摘要获取结束:---------------:"+digestStr); - resultObject.put("digest", digestStr); + resultObject.put("digest", null==digestStr?"":digestStr); resultObject.put("rawLen", file.getSize()); FileUtils.deleteFile(tempFilePath); } catch (Exception e) { @@ -368,7 +368,7 @@ public class ConfigSourcesController extends BaseRestController { e.printStackTrace(); logger.error(RestBusinessCode.GetFileDigestFailure.getValue()+":"+e.getMessage()+",请检查摘要获取工具是否安装成功"); thread.setExceptionInfo("摘要获取过程中出现异常:"+e.getMessage()+",请检查摘要获取工具是否安装成功"); - throw new ServiceRuntimeException(thread, System.currentTimeMillis() - start, RestBusinessCode.GetFileDigestFailure.getValue()+":"+e.getMessage()+",请检查摘要获取工具是否安装成功", + throw new ServiceRuntimeException(thread, System.currentTimeMillis() - start, RestBusinessCode.GetFileDigestFailure.getErrorReason()+":"+e.getMessage()+",请检查摘要获取工具是否安装成功", RestBusinessCode.GetFileDigestFailure.getValue()); } return serviceResponse(thread, System.currentTimeMillis() - start, request, response, "摘要获取成功", resultObject); 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 95d9c8b..de09f1b 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -759,7 +759,7 @@ public class ConfigSourcesService extends BaseService { // System.out.println("----------------chmodCommod:"+chmodCommond); String commondStr = realPath + digestGenToolPath + " -f " + filePath; // 执行 // 执行摘要获取命令 digest -f /home/aa.txt - // System.out.println("------------commondStr:"+commondStr); + logger.info("------------commondStr:"+commondStr); Runtime.getRuntime().exec(chmodCommond); Process p = Runtime.getRuntime().exec(commondStr); byte[] b = new byte[1024]; @@ -771,7 +771,10 @@ public class ConfigSourcesService extends BaseService { if (!StringUtil.isBlank(content)) { content = StringUtil.stripAll(content); } - // System.out.println("-------------------->>"+content); + logger.info("摘要工具获取到的内容-------------------->>"+content); + if (StringUtil.isEmpty(content)) { + throw new Exception("调用摘要工具获取到的内容为空"); + } String[] digestGenReslt = content.split(" "); if (digestGenReslt.length >= 4 && !StringUtil.isEmpty(digestGenReslt[3])) { return digestGenReslt[3]; From a65dd619b46346f883bf28414bdac4b825c605d8 Mon Sep 17 00:00:00 2001 From: zhangdongxu Date: Thu, 30 Aug 2018 19:18:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1=E3=80=81IP=E7=B1=BB=E5=9F=9F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=9A=84addrType=E7=9A=84=E5=8F=96=E5=80=BC=E9=AA=8C?= =?UTF-8?q?=E8=AF=81;=202=E3=80=81=E5=88=86=E7=BB=84=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E3=80=81=E5=88=A0=E9=99=A4=E5=9F=9F=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=B5=8B=E8=AF=95=E5=B9=B6=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nis/restful/RestBusinessCode.java | 4 ++++ src/main/java/com/nis/util/CompileVal.java | 7 +++++- src/main/java/com/nis/util/GroupReuseVal.java | 13 ++++++++--- .../com/nis/util/ServiceAndRDBIndexReal.java | 6 +++-- .../service/restful/ConfigSourcesService.java | 22 +++++++++---------- 5 files changed, 35 insertions(+), 17 deletions(-) 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()); }