From 4215a7f848e79e142f2806771477c57723d0c5cf Mon Sep 17 00:00:00 2001 From: zhangdongxu Date: Thu, 7 Jun 2018 16:13:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=91=98=E8=A6=81=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6=E5=88=B0?= =?UTF-8?q?upload=E7=84=B6=E5=90=8E=E5=86=8D=E8=8E=B7=E5=8F=96digest;=202?= =?UTF-8?q?=E3=80=81=E6=95=B4=E7=90=86=E5=B9=B6=E6=B7=BB=E5=8A=A0maat?= =?UTF-8?q?=E5=92=8C=E5=9B=9E=E8=B0=83=E7=B1=BB=E9=85=8D=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../restful/ConfigSourcesController.java | 14 +++++---- .../service/restful/ConfigSourcesService.java | 31 ++++++++++++++++--- .../resources/commonSources/commonSources.xml | 15 ++++++++- src/main/resources/maatXml/maat.xml | 24 +++++++++++++- src/main/resources/serviceTable.properties | 25 ++++++++++----- 5 files changed, 90 insertions(+), 19 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 5845d0b..dd1d898 100644 --- a/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java +++ b/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java @@ -28,6 +28,7 @@ import com.nis.domain.restful.MaatConfig; import com.nis.restful.RestBusinessCode; import com.nis.restful.RestServiceException; import com.nis.util.Constants; +import com.nis.util.FileUtils; import com.nis.util.OracleErrorCodeUtil; import com.nis.util.ServiceAndRDBIndexReal; import com.nis.util.StringUtil; @@ -571,7 +572,7 @@ public class ConfigSourcesController extends BaseRestController { @RequestMapping(value = "/cfg/v1/fileDigestSources", method = RequestMethod.POST) @ApiOperation(value = "文件摘要获取", httpMethod = "POST", response = Map.class, notes = "文件摘要获取") @ApiParam(value = "摘要文件", name = "MultipartFile", required = true) - public Map fileDigestSources(MultipartFile file, HttpServletRequest request, HttpServletResponse response) { + public Map fileDigestSources(@RequestBody MultipartFile file, HttpServletRequest request, HttpServletResponse response) { long start = System.currentTimeMillis(); SaveRequestLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request, file, null); @@ -587,6 +588,7 @@ public class ConfigSourcesController extends BaseRestController { try { if (!StringUtil.isEmpty(fileDesc.getChecksum())) { // 验证Md5 + String md5 = DigestUtils.md5Hex(file.getInputStream()); System.out.println("----------------------------MD5:'" + md5 + "'==='" + fileDesc.getChecksum() + "'"); if (!md5.equals(fileDesc.getChecksum())) { @@ -608,14 +610,14 @@ public class ConfigSourcesController extends BaseRestController { // resultObject.put("path", filePath.substring(filePath.indexOf("group"))); resultObject.put("path", filePath); } - - CommonsMultipartFile filetemp = (CommonsMultipartFile) file; - String tempFilePath = filetemp.getStorageDescription().toString(); - tempFilePath = tempFilePath.substring(tempFilePath.indexOf("[") + 1, tempFilePath.indexOf("]")); - + + String tempFilePath = request.getRealPath(File.separator)+"upload"+File.separator+(new Date()).getTime()+file.getOriginalFilename(); + file.transferTo(new File(tempFilePath)); + System.out.println("------------"+tempFilePath); String digestStr = configSourcesService.getDigestGen(request.getRealPath(File.separator), tempFilePath); resultObject.put("digest", digestStr); resultObject.put("rawLen", file.getSize()); + FileUtils.deleteFile(tempFilePath); } catch (IOException e) { // TODO Auto-generated catch block logger.error("文件上传过程中出现异常"); 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 c39c132..ff9f4e0 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -2461,6 +2461,29 @@ public class ConfigSourcesService extends BaseService { throw new RestServiceException(thread, System.currentTimeMillis() - start,"请检查service配置是否正确", RestBusinessCode.wrong_range.getValue()); } + //获取IP类型 + Integer ipType = null; + String ipTypeName =""; + for (CommonSourceFieldCfg commonSourceFieldCfg : commonSourceFieldCfgList) { + if(commonSourceFieldCfg.getDstName().equals("ip_type")){ + String dstVal = srcMap.get(commonSourceFieldCfg.getSrcName()).toString(); + ipTypeName = commonSourceFieldCfg.getSrcName(); + //regexp 特殊格式正则验证 + Boolean valFlag = true; + if(!StringUtil.isEmpty(commonSourceFieldCfg.getRegexp())){ + Pattern pattern = Pattern.compile(commonSourceFieldCfg.getRegexp()); + Matcher matcher = pattern.matcher(dstVal); + valFlag = valFlag&matcher.matches(); + } + if (!valFlag) { + logger1.error(commonSourceFieldCfg.getSrcName()+"参数格式与正则不匹配"); + thread.setExceptionInfo(commonSourceFieldCfg.getSrcName()+"参数格式与正则不匹配"); + throw new RestServiceException(thread, System.currentTimeMillis() - start, commonSourceFieldCfg.getSrcName()+"参数格式不正确或数据不在有效范围", + RestBusinessCode.param_formate_error.getValue()); + } + ipType = Integer.parseInt(dstVal); + } + } for (CommonSourceFieldCfg commonSourceFieldCfg : commonSourceFieldCfgList) { //是否必填 if(commonSourceFieldCfg.getIsRequired()&&!srcMap.containsKey(commonSourceFieldCfg.getSrcName())){ @@ -2498,10 +2521,10 @@ public class ConfigSourcesService extends BaseService { } break; case "Ip": - if (!isIp(dstStr)) { - logger1.error(commonSourceFieldCfg.getSrcName()+"参数格式不正确,不是合法的IP地址"); - thread.setExceptionInfo(commonSourceFieldCfg.getSrcName()+"参数格式不正确,不是合法的IP地址"); - throw new RestServiceException(thread, System.currentTimeMillis() - start,commonSourceFieldCfg.getSrcName()+"参数不能格式不正确,不是合法的IP地址", + if (!BasicProvingUtil.isIpOrIpMask(dstStr,ipType)) { + logger1.error(commonSourceFieldCfg.getSrcName()+"参数格式不正确或与"+ipTypeName+"不一致"); + thread.setExceptionInfo(commonSourceFieldCfg.getSrcName()+"参数格式不正确或与"+ipTypeName+"不一致"); + throw new RestServiceException(thread, System.currentTimeMillis() - start,commonSourceFieldCfg.getSrcName()+"参数格式不正确或与"+ipTypeName+"不一致", RestBusinessCode.missing_args.getValue()); } break; diff --git a/src/main/resources/commonSources/commonSources.xml b/src/main/resources/commonSources/commonSources.xml index a557028..8d4e8af 100644 --- a/src/main/resources/commonSources/commonSources.xml +++ b/src/main/resources/commonSources/commonSources.xml @@ -5,6 +5,7 @@ + @@ -26,7 +27,7 @@ - + @@ -35,6 +36,18 @@ + + + + + + + + + + + + diff --git a/src/main/resources/maatXml/maat.xml b/src/main/resources/maatXml/maat.xml index 04f4ab6..a03b81b 100644 --- a/src/main/resources/maatXml/maat.xml +++ b/src/main/resources/maatXml/maat.xml @@ -66,7 +66,29 @@ - + + + EFFECTIVE_RULE;:;{un_maat_table_name};,;[cfg_id] + [cfg_id];\t;[service];\t;[action];\t;[policy_group];\t;[addr_type];\t;[ip];\t;[port];\t;[user_region];\t;[location];\t;[is_valid];\t;[op_time + + + + 1 + MAAT_VERSION + + + MAAT_UPDATE_STATUS + + + + MAAT_RULE_TIMER + + + MAAT_VERSION_TIMER + + + + EFFECTIVE_RULE;:;{compile_table_name};,;[compile_id] [compile_id];\t;[service];\t;[action];\t;[do_blacklist];\t;[do_log];\t;[effective_range];\t;[user_region];\t;[is_valid];\t;[group_num];\t;[father_cfg_id];\t;[op_time]; 0;\n diff --git a/src/main/resources/serviceTable.properties b/src/main/resources/serviceTable.properties index 9e47fbd..6cf8139 100644 --- a/src/main/resources/serviceTable.properties +++ b/src/main/resources/serviceTable.properties @@ -5,7 +5,7 @@ ####3:例如:80=10:MM_COMPILE;11:MM_GROUP;12:AV_CONT_IP_PORT ####4:type中10代表是编译配置,11代表是分组配置,12代表是ip类域配置,13代表是数值类配置,14代表是字符串类域配置,15代表是增强字符串类域配置,16代表是文件摘要类域配置,17代表是文本相似性域配置 ################################################################################# -service=1:128;2:128;16:48;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16;27:16;30:16;31: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;256:16;257:16;258:16;259:16;260:16;384:1;385:1;386:1;387:1;388:1;512:1;513:1;528:48;529:48;544:2;545:2;560:80;561:80; +service=1:128;2:128;16:48;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;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;143:1;144:1;256:16;257:16;258:16;259:16;260:16;384:1;385:1;386:1;387:1;388:1;512:1;513:1;528:48;529:48;544:2;545:2;560:80;561:80;768:96;1024:1;1040:16;1041:16;1056:64;1057:64;1058:64; #1024:16,不知道表名怎么写 #30有问题:14:NTC_XMPP_REGION,NTC_XMPP_CONT不确定表是不是字符串类 @@ -27,7 +27,7 @@ service=1:128;2:128;16:48;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 27=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE; 30=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:NTC_XMPP_REGION,NTC_XMPP_CONT 31=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:NTC_BGP_AS - +32=10:NTC_COMPILE;11:NTC_GROUP;17:NTC_FILE_DIGEST 128=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_IP 129=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:NTC_HTTP_URL,NTC_HTTP_REQ_BODY,NTC_HTTP_RES_BODY;15:NTC_HTTP_REQ_HDR,NTC_HTTP_RES_HDR @@ -43,6 +43,8 @@ service=1:128;2:128;16:48;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 139=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE; 140=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE; 141=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE; +143=10:NTC_COMPILE;11:NTC_GROUP;12:NTC_UNIVERSAL_IP;13:NTC_UNIVERSAL_PROTO_TYPE;14:NTC_BGP_AS +144=10:NTC_COMPILE;11:NTC_GROUP;17:NTC_FILE_DIGEST 256=10:MM_COMPILE;11:MM_GROUP;12:MM_AV_IP 257=10:MM_COMPILE;11:MM_GROUP;14:MM_AV_URL @@ -57,7 +59,7 @@ service=1:128;2:128;16:48;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 388=10:MM_COMPILE;11:MM_GROUP;12:MM_VOIP_IP;14:MM_VOIP_ACCOUNT 512=10:PXY_INTERCEPT_COMPILE;11:PXY_INTERCEPT_GROUP;12:PXY_INTERCEPT_IP -513=10:PXY_INTERCEPT_COMPILE;11:PXY_INTERCEPT_GROUP;14:PXY_INTERCEPT_DOMAI +513=10:PXY_INTERCEPT_COMPILE;11:PXY_INTERCEPT_GROUP;14:PXY_INTERCEPT_DOMAIN 528=10:PXY_CTRL_COMPILE;11:PXY_CTRL_GROUP;12:PXY_CTRL_IP 529=10:PXY_CTRL_COMPILE;11:PXY_CTRL_GROUP;14:PXY_CTRL_HTTP_URL;15:PXY_CTRL_HTTP_REQ_HDR,PXY_CTRL_HTTP_RES_HDR,PXY_CTRL_HTTP_REQ_BODY,PXY_CTRL_HTTP_RES_BODY @@ -68,9 +70,17 @@ service=1:128;2:128;16:48;17:16;18:16;19:16;20:16;21:16;22:16;23:16;24:16;26:16; 560=10:PXY_CTRL_COMPILE;11:PXY_CTRL_GROUP;15:PXY_CTRL_HTTP_REQ_BODY 561=10:PXY_CTRL_COMPILE;11:PXY_CTRL_GROUP;15:PXY_CTRL_HTTP_RES_BODY +768=10:IR_POLICY_COMPILE;11:IR_POLICY_GROUP;12:IR_POLICY_IP +1024=10:APP_COMPILE;11:APP_GROUP;15:APP_HTTP;14:APP_PKT_BIN;14:APP_SSL_SNI +1040=10:APP_COMPILE;11:APP_GROUP;14:APP_POLICY +1041=10:APP_COMPILE;11:APP_GROUP;12:APP_STATIC_SEV_IP +1056=10:APP_COMPILE;11:APP_GROUP;14:APP_POLICY -unMaatService=3:32;4:96;25:32;28:32;29:32;261:16;262:16;263:16;264:16;265:16;266:16;389:1;390:1;391:1;392:1;393:1;394:1; +1057=10:LIMIT_COMPILE;11:LIMIT_GROUP;12:LIMIT_IP +1058=10:LIMIT_COMPILE;11:LIMIT_GROUP;14:LIMIT_DOMAIN + +unMaatService=3:32;4:96;25:32;28:32;29:32;261:16;262:16;263:16;264:16;265:16;266:16;389:1;390:1;391:1;392:1;393:1;394:1;832:96; 3=0:INLINE_IP_CB 4=0:INLINE_IP_CB @@ -90,11 +100,12 @@ unMaatService=3:32;4:96;25:32;28:32;29:32;261:16;262:16;263:16;264:16;265:16;266 392=0:MM_SAMPLE_VOIP 393=0:MM_PORN_AUDIO_LEVEL 394=0:MM_PORN_VIDEO_LEVEL +832=0:IR_STATIC_IP_POOL_CB ##各业务类型对应的redisdb,业务类型:redisdb,多个业务以“;”分隔,多个db以“,”数量不能超过6个 -#serviceDBIndex=3:2,3;1:2;80:2;81:2;82:2;83:2;84:2;85:2;144:2;145:2;146:2;147:2;148:2;149:2;96:3;97:3;98:3;99:3;160:3,4;161:3;162:3;163:3;100:3;101:3;164:3;165:3 -serviceDBIndex=1:2,3,4;2:2,3,4;16:3,4,5;17:2;18:2;19:2;20:2;21:2;22:2;23:2;24:2;26:2;27:2;30:2;31: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;256:2;257:2;258:2;259:2;260:2;384:2;385:2;386:2;387:2;388:2;512:2;513:2;528:2;529:2;544:2;545:2;560:2;561:2;3:5;4:5;25:5;28:5;29:5;261:5;262:5;263:5;264:5;265:5;266:5;389:5;390:5;391:5;392:5;393:5;394:5; - +#系统简称对应的redisDBIndex: NTC(1-255):2 MM(256-511):3 PXY(512-767):4 IR(768-1023):5 DK(1024-1279):6 阀门:7 +#APP 0x400-0x420 目前配置入到NTC系统对应的库中 +serviceDBIndex=1:2,3,4,6;2:2,3,4,6;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;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;143:2;144:2;256:3;257:3;258:3;259:3;260:3;384:3;385:3;386:3;387:3;388:3;512:4;513:4,2;528:4;529:4;544:4;545:4;560:4;561:4;3:2,7;4:2,7;25:2;28:2;29:2;261:3;262:3;263:3;264:3;265:3;266:3;389:3;390:3;391:3;392:3;393:3;394:3;832:5,7;768:4;1024:2,6;1040:2,6;1041:2,6;1056:2,6;1057:6;1058:6,2