diff --git a/pom.xml b/pom.xml index 0ed75e6..703c6e1 100644 --- a/pom.xml +++ b/pom.xml @@ -534,6 +534,13 @@ httpcore 4.4 + + jdk.tools + jdk.tools + 1.7 + system + ${JAVA_HOME}/lib/tools.jar + org.apache.httpcomponents httpclient 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 cb1c4bb..aeadd46 100644 --- a/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java +++ b/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java @@ -376,7 +376,7 @@ public class ConfigSourcesController extends BaseRestController { @RequestMapping(value = "/cfg/v1/groupReuseSources", method = RequestMethod.POST) @ApiOperation(value = "分组复用域配置新增接口", httpMethod = "POST", response = Map.class, notes = "接收分组复用域配置,增加到对应的分组中") - @ApiParam(value = "分组复用域配置对象", name = "configSource", required = true) + @ApiParam(value = "分组复用域配置对象", name = "groupReuseSource", required = true) public Map addGroupReuseSources(@RequestBody GroupReuseSource groupReuseSource, HttpServletRequest request, HttpServletResponse response) { @@ -419,7 +419,7 @@ public class ConfigSourcesController extends BaseRestController { @RequestMapping(value = "/cfg/v1/groupReuseSources", method = RequestMethod.PUT) @ApiOperation(value = "分组复用域配置删除接口", httpMethod = "PUT", response = Map.class, notes = "接收分组复用域配置,并从对应分组中删除") - @ApiParam(value = "分组复用域配置对象", name = "configSource", required = true) + @ApiParam(value = "分组复用域配置对象", name = "groupReuseSource", required = true) public Map delGroupReuseSources(@RequestBody GroupReuseSource groupReuseSource, HttpServletRequest request, HttpServletResponse response) { long start = System.currentTimeMillis(); diff --git a/src/main/java/com/nis/web/dao/DfLogSearchDao.xml b/src/main/java/com/nis/web/dao/DfLogSearchDao.xml index 744694f..ed3472d 100644 --- a/src/main/java/com/nis/web/dao/DfLogSearchDao.xml +++ b/src/main/java/com/nis/web/dao/DfLogSearchDao.xml @@ -477,7 +477,11 @@ - + + + + + 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 835ccee..5da933e 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -904,72 +904,69 @@ public class ConfigSourcesService extends BaseService { */ public void deleteGroupReuseSources(AuditLogThread thread, long start, List groupReuseList, Date opTime, StringBuffer sb) throws Exception { - // 按service分类 - Map> maatMap = new HashMap>(); - - GroupReuseVal.valGroupReuse(groupReuseList, false); + // 按service分类 Map> + Map>> reuseMap = new HashMap>>(); + for (GroupReuse groupReuse : groupReuseList) { // 验证格式 checkGroupReuseForUpdate(groupReuse); Integer service = groupReuse.getService(); - MaatConfig maatConfig = new MaatConfig(); - maatConfig.setService(service); - List> dstMaplList = null; + + if (!reuseMap.containsKey(service)) { + Map> map = new HashMap>(); + reuseMap.put(service, map); + } + // 字符串域 - List> strongMapList = null; if (!StringUtil.isEmpty(groupReuse.getStrRegionList())) { - dstMaplList = new ArrayList>(); for (StrRegion region : groupReuse.getStrRegionList()) { - if (StringUtil.isEmpty(region.getDistrict())) { - dstMaplList.add(convertObjectToMap(region, StrRegion.class)); - } else { - if (StringUtil.isEmpty(strongMapList)) { - strongMapList = new ArrayList>(); - } - strongMapList.add(convertObjectToMap(region, StrRegion.class)); + if (reuseMap.get(service).containsKey(region.getGroupId())) { + reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); + }else{ + Map> groupMap = new HashMap>(); + List regionList = new ArrayList(); + regionList.add(region.getTableName()+","+region.getRegionId()); + groupMap.put(region.getGroupId(), regionList); } } } - maatConfig.setStrRegionMapList(dstMaplList); - // 增强字符串域 - if (!StringUtil.isEmpty(strongMapList) && strongMapList.size() > 0) { - maatConfig.setStrStrRegionMapList((strongMapList)); - } + // 数值域 - dstMaplList = null; if (!StringUtil.isEmpty(groupReuse.getNumRegionList())) { - dstMaplList = new ArrayList>(); for (NumRegion region : groupReuse.getNumRegionList()) { - dstMaplList.add(convertObjectToMap(region, NumRegion.class)); + if (reuseMap.get(service).containsKey(region.getGroupId())) { + reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); + }else{ + Map> groupMap = new HashMap>(); + List regionList = new ArrayList(); + regionList.add(region.getTableName()+","+region.getRegionId()); + groupMap.put(region.getGroupId(), regionList); + } } } - maatConfig.setNumRegionMapList(dstMaplList); // Ip域 - dstMaplList = null; if (!StringUtil.isEmpty(groupReuse.getIpRegionList())) { - dstMaplList = new ArrayList>(); for (IpRegion region : groupReuse.getIpRegionList()) { - dstMaplList.add(convertObjectToMap(region, IpRegion.class)); + if (reuseMap.get(service).containsKey(region.getGroupId())) { + reuseMap.get(service).get(region.getGroupId()).add(region.getTableName()+","+region.getRegionId()); + }else{ + Map> groupMap = new HashMap>(); + List regionList = new ArrayList(); + regionList.add(region.getTableName()+","+region.getRegionId()); + groupMap.put(region.getGroupId(), regionList); + reuseMap.put(service, groupMap); + } } } - maatConfig.setIpRegionMapList(dstMaplList); - - if (maatMap.containsKey(service)) { - maatMap.get(service).add(maatConfig); - } else { - List maatCfgList = new ArrayList(); - maatCfgList.add(maatConfig); - maatMap.put(service, maatCfgList); - } } logger.info("调用接口删除Redis中分组复用的域配置接口"); // 所有的都删除成功返回true - if (!configRedisService.delGroupReuseConfig(maatMap)) { - throw new ServiceRuntimeException("删除分组利用域配置时出现异常,具体原因不详,请联系管理员", - RestBusinessCode.service_runtime_error.getValue()); - } +// if (!configRedisService.delGroupReuseConfig(reuseMap)) { +// throw new ServiceRuntimeException("删除分组利用域配置时出现异常,具体原因不详,请联系管理员", +// RestBusinessCode.service_runtime_error.getValue()); +// } } /** @@ -1048,7 +1045,7 @@ public class ConfigSourcesService extends BaseService { } } - if (hasRegionFlag) { + if (!hasRegionFlag) { // 所有的域类型都不包括,可能是配置文件配错了 throw new ServiceRuntimeException( "service为" + config.getService() + "的" + RestBusinessCode.ReuseRegionIsNull.getErrorReason(), diff --git a/src/main/resources/applicationConfig-rule.properties b/src/main/resources/applicationConfig-rule.properties index af9085e..2ebd644 100644 --- a/src/main/resources/applicationConfig-rule.properties +++ b/src/main/resources/applicationConfig-rule.properties @@ -20,7 +20,7 @@ ##回流 0x60 96 loop ##白名单 0x80 128 whitelist -service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16;27:16;30:16;31:16;32:16;33:16;34:16;35:16;36:16;37:16;128:1;129:1;130:1;131:1;132:1;133:1;134:1;135:1;136:1;137:1;138:1;139:1;140:1;141:1;142:1;143:1;144:1;145:1;147:1;148:1;149:1;256:16;257:16;258:16;259:16;260:16;267:16;384:1;385:1;386:1;387:1;388:1;395:1;512:1;513:1;514:64;515:64;517:80;521:128;528:48;544:2;560:80;576:16;592:1;750:128;768:96;1024:1;1026:1;1027:1;1028:1;1029:1;1030:1;1031:1;1040:32;1041:32;1042:32;1056:64;1059:64;1060:64;1152:1 +service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16;27:16;30:16;31:16;32:16;33:16;34:16;35:16;36:16;37:16;128:1;129:1;130:1;131:1;132:1;133:1;134:1;135:1;136:1;137:1;138:1;139:1;140:1;141:1;142:1;143:1;144:1;145:1;147:1;148:1;149:1;256:16;257:16;258:16;259:16;260:16;267:16;384:1;385:1;386:1;387:1;388:1;395:1;512:1;513:1;514:64;515:64;517:80;521:128;528:48;544:2;560:80;576:16;592:1;750:128;768:96;1024:1;1026:1;1027:1;1028:1;1029:1;1030:1;1031:1;1040:32;1041:32;1042:32;1056:64;1057:64;1058:64;1059:64;1060:64;1152:1 #0x1E 0x8E 有问题:14:NTC_XMPP_REGION,NTC_XMPP_CONT 无表结构 不确定表是不是字符串类 @@ -166,7 +166,7 @@ service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 750=10:PXY_CTRL_COMPILE;11:PXY_CTRL_GROUP;12:PXY_CTRL_IP;14:PXY_CTRL_HTTP_URL,PXY_CRTL_SUBSCRIBE_ID;15:PXY_CTRL_HTTP_REQ_HDR;18:NTC_IP_RANGE #0x300 IP复用策略配置 -768=10:IR_POLICY_COMPILE;11:IR_POLICY_GROUP;12:IR_POLICY_IP;14:IR_POLICY_IP;18:NTC_IP_RANGE +768=10:IR_POLICY_COMPILE;11:IR_POLICY_GROUP;12:IR_POLICY_IP;18:NTC_IP_RANGE #将APP用户定义特征发现(0x400)中APP_PKT_BIN表拆分到新的serive(0x403) #0x400 APP HTTP特征发现 @@ -194,6 +194,10 @@ service=1:128;2:128;16:16;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; #0x420 APP限流 1056=10:APP_COMPILE;11:APP_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:APP_POLICY,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE +#0x421 IP限流 +1057=10:LIMIT_COMPILE;11:LIMIT_GROUP;12:LIMIT_IP;18:NTC_IP_RANGE +#0x422 域名限流 +1058=10:LIMIT_COMPILE;11:LIMIT_GROUP;14:LIMIT_DOMAIN;18:NTC_IP_RANGE #0x423 基础协议限流 1059=10:APP_COMPILE;11:APP_GROUP;14:APP_POLICY,APP_SUBSCRIBE_ID;18:NTC_IP_RANGE @@ -282,6 +286,8 @@ unMaatService=3:32;4:96;5:32;25:32;28:32;64;65;261:16;262:16;263:16;264:16;265:1 #0x411 基础协议丢弃 1041:2,6,7; #0x412 隧道行为丢弃 1042:2,6,7; #0x420 APP限流 1056:2,6,7; +#0x421 IP限流 1057:6,7; +#0x422 域名限流 1058:6,2,7; #0x423 基础协议限流 1059:2,6,7; #0x424 隧道行为限流 1060:2,6,7; #0x405 SSL证书特征 1029:2,6,7; @@ -295,7 +301,7 @@ unMaatService=3:32;4:96;5:32;25:32;28:32;64;65;261:16;262:16;263:16;264:16;265:1 #0x19 IPSec丢弃 25:7; #0x340 IP复用地址池配置(回调)832:2,4,5,7 ########## -serviceDBIndex=1:2,3,4,6,7;2:2,3,4,6,7;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;24:2;26:2;27:2;30:2;31:2;32:2;33:2,6,7;34:2;35:2,6,7;36:2,6,7;37:2;128:2;129:2;130:2;131:2;132:2;133:2;134:2;135:2;136:2;137:2;138:2;139:2;140:2;141:2;142:2;143:2;144:2;145:2,6,7;147:2,6,7;148:2,6,7;149:2;256:3;257:3;258:3;259:3;260:3;267:3;384:3;385:3;386:3;387:3;388:3;395:3;512:4,7;513:4,2,7;514:4;515:4;517:4;520:4;521:4;528:4;544:4;560:4;576:4;592:4;608:4;750:4;768:5;1024:2,6,7;1024:2;1025:2;1026:2,6,7;1027:2,6,7;1028:2,6,7;1029:2,6,7;1030:2,6,7;1031:2,6,7;1040:2,6,7;1041:2,6,7;1042:2,6,7;1056:2,6,7;1059:2,6,7;1060:2,6,7;1152:2,6;3:7;4:7;5:2;25:7;28:7;64:2;65:2;261:8;262:9;263:10;264:11;265:3;266:3;389:8;390:9;391:10;392:11;393:3;394:3;832:2,4,5,7 +serviceDBIndex=1:2,3,4,6,7;2:2,3,4,6,7;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;24:2;26:2;27:2;30:2;31:2;32:2;33:2,6,7;34:2;35:2,6,7;36:2,6,7;37:2;128:2;129:2;130:2;131:2;132:2;133:2;134:2;135:2;136:2;137:2;138:2;139:2;140:2;141:2;142:2;143:2;144:2;145:2,6,7;147:2,6,7;148:2,6,7;149:2;256:3;257:3;258:3;259:3;260:3;267:3;384:3;385:3;386:3;387:3;388:3;395:3;512:4,7;513:4,2,7;514:4;515:4;517:4;520:4;521:4;528:4;544:4;560:4;576:4;592:4;608:4;750:4;768:5;1024:2,6,7;1025:2;1026:2,6,7;1027:2,6,7;1028:2,6,7;1029:2,6,7;1030:2,6,7;1031:2,6,7;1040:2,6,7;1041:2,6,7;1042:2,6,7;1056:2,6,7;1059:2,6,7;1057:6,7;1058:6,2,7;1060:2,6,7;1152:2,6;3:7;4:7;5:2;25:7;28:7;64:2;65:2;261:8;262:9;263:10;264:11;265:3;266:3;389:8;390:9;391:10;392:11;393:3;394:3;832:2,4,5,7 ##maat配置入阀门需要将编译中的部分参数写到域配置中,目前最多包含ACTION,SERVICE,USER_REGION三个属性 @@ -312,8 +318,10 @@ serviceDBIndex=1:2,3,4,6,7;2:2,3,4,6,7;16:2;17:2;18:2;19:2;20:2;21:2;22:2;23:2;2 #0x404 APP IP特征 1028 #0x410 APP丢弃 1040 #0x420 APP限流 1056 +#0x421 IP限流 1057 +#0x422 域名限流 1058 -maat2Valve=33:strRegion@ACTION&SERVICE&USER_REGION;35:strRegion@ACTION&SERVICE&USER_REGION;36:strRegion@ACTION&SERVICE&USER_REGION;145:strRegion@ACTION&SERVICE&USER_REGION;147:strRegion@ACTION&SERVICE&USER_REGION;148:strRegion@ACTION&SERVICE&USER_REGION;512:ipRegion@ACTION&SERVICE;513:strRegion@ACTION&SERVICE&USER_REGION;1024:strRegion|strStrRegion@USER_REGION;1026:strRegion|strStrRegion@USER_REGION;1027:strRegion|strStrRegion@USER_REGION;1028:ipRegion@USER_REGION;1029:strStrRegion@USER_REGION;1030:numRegion@USER_REGION;1031:strStrRegion@USER_REGION;1040:strRegion@ACTION&SERVICE&USER_REGION;1041:strRegion@ACTION&SERVICE&USER_REGION;1042:strRegion@ACTION&SERVICE&USER_REGION;1056:strRegion@ACTION&SERVICE&USER_REGION;1059:strRegion@ACTION&SERVICE&USER_REGION;1060:strRegion@ACTION&SERVICE&USER_REGION +maat2Valve=33:strRegion@ACTION&SERVICE&USER_REGION;35:strRegion@ACTION&SERVICE&USER_REGION;36:strRegion@ACTION&SERVICE&USER_REGION;145:strRegion@ACTION&SERVICE&USER_REGION;147:strRegion@ACTION&SERVICE&USER_REGION;148:strRegion@ACTION&SERVICE&USER_REGION;512:ipRegion@ACTION&SERVICE;513:strRegion@ACTION&SERVICE&USER_REGION;1024:strRegion|strStrRegion@USER_REGION;1026:strRegion|strStrRegion@USER_REGION;1027:strRegion|strStrRegion@USER_REGION;1028:ipRegion@USER_REGION;1029:strStrRegion@USER_REGION;1030:numRegion@USER_REGION;1031:strStrRegion@USER_REGION;1040:strRegion@ACTION&SERVICE&USER_REGION;1041:strRegion@ACTION&SERVICE&USER_REGION;1042:strRegion@ACTION&SERVICE&USER_REGION;1056:strRegion@ACTION&SERVICE&USER_REGION;1057:ipRegion@ACTION&SERVICE&USER_REGION;1058:strRegion@ACTION&SERVICE&USER_REGION;1059:strRegion@ACTION&SERVICE&USER_REGION;1060:strRegion@ACTION&SERVICE&USER_REGION