diff --git a/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java b/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java index 7e6a9fccc..1ea7c126c 100644 --- a/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java +++ b/src/main/java/com/nis/domain/configuration/AvFileSampleCfg.java @@ -2,6 +2,7 @@ package com.nis.domain.configuration; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; +import com.nis.util.excel.ExcelField; public class AvFileSampleCfg extends BaseCfg { /** @@ -10,9 +11,11 @@ public class AvFileSampleCfg extends BaseCfg { private static final long serialVersionUID = -2356472662189941874L; @Expose @SerializedName("srcFile") + @ExcelField(title="src_file",sort=2) private String srcUrl; @Expose @SerializedName("dstFile") + @ExcelField(title="sample_file",sort=3) private String sampleUrl; @Expose @SerializedName("srcFileMd5") @@ -21,6 +24,7 @@ public class AvFileSampleCfg extends BaseCfg { @SerializedName("dstFileMd5") private String sampleMd5; @Expose + @ExcelField(title="harm_level",sort=21) private Integer level; @Expose @SerializedName("cfgId") diff --git a/src/main/java/com/nis/domain/configuration/BaseIpCfg.java b/src/main/java/com/nis/domain/configuration/BaseIpCfg.java index b92e82418..3767cae4b 100644 --- a/src/main/java/com/nis/domain/configuration/BaseIpCfg.java +++ b/src/main/java/com/nis/domain/configuration/BaseIpCfg.java @@ -42,24 +42,24 @@ public class BaseIpCfg extends BaseCfg { */ @Expose @SerializedName("ipType") - @ExcelField(title="ip_type",dictType="IP_TYPE",sort=101) + @ExcelField(title="ip_type",dictType="IP_TYPE",sort=2) protected Integer ipType; - @ExcelField(title="ip_pattern",dictType="IP_PATTERN",sort=102) + @ExcelField(title="ip_pattern",dictType="IP_PATTERN",sort=3) protected Integer ipPattern; - @ExcelField(title="client_ip",sort=103) + @ExcelField(title="client_ip",sort=4) protected String srcIpAddress; - @ExcelField(title="server_ip",sort=104) + @ExcelField(title="server_ip",sort=5) protected String destIpAddress; - @ExcelField(title="port_pattern",dictType="PORT_PATTERN",sort=105) + @ExcelField(title="port_pattern",dictType="PORT_PATTERN",sort=6) protected Integer portPattern; - @ExcelField(title="client_port",sort=106) + @ExcelField(title="client_port",sort=7) protected String srcPort; - @ExcelField(title="server_port",sort=107) + @ExcelField(title="server_port",sort=8) protected String destPort; protected Integer dnsStrategyId; - @ExcelField(title="ir_type",dictType="IR_TYPE",sort=108) + @ExcelField(title="ir_type",dictType="IR_TYPE",sort=9) protected Integer irType; - @ExcelField(title="group_name",sort=109) + @ExcelField(title="group_name",sort=10) protected String groupName; private List ntcSubscribeIdCfgList; @@ -97,14 +97,14 @@ public class BaseIpCfg extends BaseCfg { */ @Expose @SerializedName("direction") - @ExcelField(title="direction",dictType="DIRECTION",sort=110) + @ExcelField(title="direction",dictType="DIRECTION",sort=11) protected Integer direction ; /** - * 方向 + * 协议 */ @Expose @SerializedName("protocol") - @ExcelField(title="protocol",dictType="PROTOCOL",sort=111) + @ExcelField(title="protocol",dictType="PROTOCOL",sort=12) protected Integer protocol ; /** * 协议ID diff --git a/src/main/java/com/nis/domain/configuration/FileDigestCfg.java b/src/main/java/com/nis/domain/configuration/FileDigestCfg.java index bc7c7eab3..4b9905b63 100644 --- a/src/main/java/com/nis/domain/configuration/FileDigestCfg.java +++ b/src/main/java/com/nis/domain/configuration/FileDigestCfg.java @@ -10,6 +10,8 @@ package com.nis.domain.configuration; import java.util.List; +import com.nis.util.excel.ExcelField; + /** * 文件摘要配置 @@ -26,9 +28,13 @@ public class FileDigestCfg extends BaseCfg { */ private static final long serialVersionUID = 2796500715438264119L; private static final String tableName="file_digest_cfg"; + @ExcelField(title="raw_len",sort=3) private Long rawLen; + @ExcelField(title="digest",sort=2) private String digest; + @ExcelField(title="cfds_level",sort=4) private Integer cfdsLevel; + @ExcelField(title="file_url",sort=5) private String fileUrl; private NtcSubscribeIdCfg ntcSubscribeIdCfg; diff --git a/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java b/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java index 557195e4d..79a16c5fe 100644 --- a/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java +++ b/src/main/java/com/nis/domain/configuration/template/DnsIpTemplate.java @@ -8,7 +8,6 @@ */ package com.nis.domain.configuration.template; -import com.google.gson.JsonObject; import com.nis.util.excel.ExcelField; /** diff --git a/src/main/java/com/nis/util/DictUtils.java b/src/main/java/com/nis/util/DictUtils.java index 2989ede08..897601245 100644 --- a/src/main/java/com/nis/util/DictUtils.java +++ b/src/main/java/com/nis/util/DictUtils.java @@ -282,6 +282,28 @@ public class DictUtils { } return regionDict; } + /** + * 功能配置域字典,获取配置域信息 + * @param dictId + * @return + */ + public static FunctionRegionDict getFunctionRegionDictByRegionCode(Integer functionId,Integer regionCode){ + FunctionRegionDict regionDict=null; + List allDictList = (List)CacheUtils.get(Constants.CACHE_FUNCTION_REGION_DICT); + List dictList = new ArrayList(); + if(StringUtil.isEmpty(allDictList)){ + FunctionRegionDict entity = new FunctionRegionDict(); + allDictList = functionRegionDictDao.getList(entity); + CacheUtils.put(Constants.CACHE_FUNCTION_REGION_DICT, allDictList); + } + for(FunctionRegionDict entity:allDictList){ + if(entity.getConfigRegionCode().equals(regionCode)&&entity.getFunctionId().equals(functionId)){ + regionDict=entity; + break; + } + } + return regionDict; + } /** * 功能配置域字典,获取相应功能菜单对应的配置域信息 * @param functionId diff --git a/src/main/java/com/nis/util/excel/ExportExcel.java b/src/main/java/com/nis/util/excel/ExportExcel.java index 9cf833839..fac17d422 100644 --- a/src/main/java/com/nis/util/excel/ExportExcel.java +++ b/src/main/java/com/nis/util/excel/ExportExcel.java @@ -448,16 +448,16 @@ public class ExportExcel { commentStr=""; List isHex=DictUtils.getDictList("IS_HEX"); if(isHex !=null && isHex.size()>0){ - if(((","+region.getConfigHex()+",").indexOf("1") >-1)){ + if(((","+region.getConfigHex()+",").indexOf(",1,") >-1)){ for (SysDataDictionaryItem sysDataDictionaryItem : isHex) { - if(sysDataDictionaryItem.getItemCode().equals(1)){ + if(sysDataDictionaryItem.getItemCode().equals("1")){ commentStr=commentStr+sysDataDictionaryItem.getItemCode()+":"+sysDataDictionaryItem.getItemValue()+"\n"; } } } - if(!((","+region.getConfigHex()+",").indexOf("1") >-1)){ + if(!((","+region.getConfigHex()+",").indexOf(",1,") >-1)){ for (SysDataDictionaryItem sysDataDictionaryItem : isHex) { - if(sysDataDictionaryItem.getItemCode().equals(0)){ + if(sysDataDictionaryItem.getItemCode().equals("0")){ commentStr=commentStr+sysDataDictionaryItem.getItemCode()+":"+sysDataDictionaryItem.getItemValue()+"\n"; } } @@ -478,16 +478,16 @@ public class ExportExcel { commentStr=""; List isCaseSenstive=DictUtils.getDictList("CASE_INSENSTIVE"); if(isCaseSenstive !=null && isCaseSenstive.size()>0){ - if(((","+region.getConfigHex()+",").indexOf("2") >-1)){ + if(((","+region.getConfigHex()+",").indexOf(",2,") >-1)){ for (SysDataDictionaryItem sysDataDictionaryItem : isCaseSenstive) { - if(sysDataDictionaryItem.getItemCode().equals(1)){ + if(sysDataDictionaryItem.getItemCode().equals("1")){ commentStr=commentStr+sysDataDictionaryItem.getItemCode()+":"+sysDataDictionaryItem.getItemValue()+"\n"; } } } - if(!((","+region.getConfigHex()+",").indexOf("2") >-1)){ + if(!((","+region.getConfigHex()+",").indexOf(",2,") >-1)){ for (SysDataDictionaryItem sysDataDictionaryItem : isCaseSenstive) { - if(sysDataDictionaryItem.getItemCode().equals(1)){ + if(sysDataDictionaryItem.getItemCode().equals("0")){ commentStr=commentStr+sysDataDictionaryItem.getItemCode()+":"+sysDataDictionaryItem.getItemValue()+"\n"; } } diff --git a/src/main/java/com/nis/web/controller/BaseController.java b/src/main/java/com/nis/web/controller/BaseController.java index bee22fcd3..899f4f0af 100644 --- a/src/main/java/com/nis/web/controller/BaseController.java +++ b/src/main/java/com/nis/web/controller/BaseController.java @@ -39,6 +39,7 @@ import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.basics.ServiceDictInfo; import com.nis.domain.basics.SysDictInfo; +import com.nis.domain.configuration.AppPolicyCfg; import com.nis.domain.configuration.AreaBean; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseCfg; @@ -54,6 +55,7 @@ import com.nis.domain.configuration.template.IpPayloadTemplate; import com.nis.domain.configuration.template.IpRateLimitTemplate; import com.nis.domain.log.BaseLogEntity; import com.nis.domain.log.SearchReport; +import com.nis.domain.specific.SpecificServiceCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.Configurations; //import com.nis.main.ConvertTool; @@ -2430,12 +2432,26 @@ public class BaseController { * @param regionDictIds * @param requestId */ - public void _import(RedirectAttributes redirectAttributes, MultipartFile[] files, Integer serviceDictId, + public void _import(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, MultipartFile[] files, Integer serviceDictId, String regionDictIds, Integer requestId) { try { FunctionServiceDict serviceDict = DictUtils.getFunctionServiceDict(serviceDictId); + String regionCode=serviceDict.getRegionCode(); List ipPortCfgs = new ArrayList(); List cfgIndexInfos = new ArrayList(); + List appPolicyCfgs = new ArrayList(); + FunctionRegionDict appRegion=null; + for(String code:regionCode.split(",")) { + if(StringUtils.isNotBlank(code)) { + FunctionRegionDict d=DictUtils.getFunctionRegionDictByRegionCode(serviceDict.getFunctionId(),Integer.parseInt(code)); + if(d.getConfigServiceType().equals("app_policy")) { + appRegion=d; + break; + } + } + + } + for (int i = 0; i < files.length; i++) { MultipartFile file = files[i]; ImportExcel ei = new ImportExcel(file, 0, 0); @@ -2464,8 +2480,17 @@ public class BaseController { ipPortCfgs = this.checkIpCfg(serviceDict, regionDict, list); } Date date = new Date(); + String specServiceId=request.getParameter("appId"); + String behaviorId=request.getParameter("behaviorId"); + SpecificServiceCfg specificServiceCfg=null; + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145|| + serviceDict.getServiceId().intValue()==35||serviceDict.getServiceId().intValue()==147|| + serviceDict.getServiceId().intValue()==36||serviceDict.getServiceId().intValue()==148) { + if(StringUtils.isNotBlank(specServiceId)) { + specificServiceCfg=specificServiceCfgService.getBySpecServiceId(Integer.parseInt(specServiceId)); + } + } for (BaseIpCfg cfg : ipPortCfgs) { - CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); cfg.setAction(serviceDict.getAction()); cfg.setAuditorId(UserUtils.getUser().getId()); cfg.setAuditTime(date); @@ -2485,12 +2510,34 @@ public class BaseController { cfg.setServiceId(serviceDict.getServiceId()); cfg.setTableName("ip_port_cfg"); cfg.setCompileId(ipCfgService.getCompileId()); - - BeanUtils.copyProperties(cfg, cfgIndexInfo); - cfgIndexInfos.add(cfgIndexInfo); + if(serviceDict.getServiceId().intValue()==33||serviceDict.getServiceId().intValue()==145|| + serviceDict.getServiceId().intValue()==35||serviceDict.getServiceId().intValue()==147|| + serviceDict.getServiceId().intValue()==36||serviceDict.getServiceId().intValue()==148) { + if(specificServiceCfg!=null&&appRegion!=null) { + AppPolicyCfg appPolicyCfg=new AppPolicyCfg(); + BeanUtils.copyProperties(cfg, appPolicyCfg); + appPolicyCfg.setSpecServiceId(specificServiceCfg.getSpecServiceId()); + appPolicyCfg.setAppCode(specificServiceCfg.getSpecServiceCode()); + appPolicyCfg.setExprType(0); + appPolicyCfg.setMatchMethod(0); + appPolicyCfg.setIsHexbin(0); + appPolicyCfg.setCfgType(appRegion.getConfigRegionValue()); + appPolicyCfg.setCfgRegionCode(appRegion.getConfigRegionCode()); + if(StringUtils.isNotBlank(behaviorId)) { + appPolicyCfg.setBehavCode(Integer.parseInt(behaviorId)); + } + appPolicyCfgs.add(appPolicyCfg); + } + }else { + CfgIndexInfo cfgIndexInfo = new CfgIndexInfo(); + BeanUtils.copyProperties(cfg, cfgIndexInfo); + cfgIndexInfos.add(cfgIndexInfo); + } + } ipCfgService.saveBatch(ipPortCfgs, IpCfgDao.class); ipCfgService.saveCfgIndexOf(cfgIndexInfos); + appCfgService.savePolicyList(appPolicyCfgs); } } catch (Exception e) { addMessage(redirectAttributes, e.getMessage()); diff --git a/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java b/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java index ade797550..1347f31ba 100644 --- a/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/manipulation/DdosCfgController.java @@ -1,7 +1,10 @@ package com.nis.web.controller.configuration.manipulation; +import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -16,12 +19,15 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; import com.nis.domain.basics.ServiceDictInfo; +import com.nis.domain.configuration.AvFileSampleCfg; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.DdosIpCfg; import com.nis.domain.configuration.DnsResStrategy; +import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.DdosIpCfg; import com.nis.domain.configuration.RequestInfo; import com.nis.exceptions.MaatConvertException; +import com.nis.util.Constants; import com.nis.util.StringUtil; import com.nis.web.controller.BaseController; import com.nis.web.security.UserUtils; @@ -93,4 +99,48 @@ public class DdosCfgController extends BaseController { return "redirect:" + adminPath +"/manipulation/ddos/list?functionId="+functionId; } + //ddos配置导出 + @RequestMapping(value = "exportDdos") + public void exportddos(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")DdosIpCfg entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + + /*//导出选中记录 + * if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + entity.setTableName(IpPortCfg.getTablename()); + Page pageInfo=new Page(request, response,"r"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + Page page = ddosCfgService.findPage(pageInfo, entity); + titleList.add(entity.getMenuNameCode()); + classMap.put(entity.getMenuNameCode(), DdosIpCfg.class); + String cfgIndexInfoNoExport=",client_port,server_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + dataMap.put(entity.getMenuNameCode(), page.getList()); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("ddos export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); + } + } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java index cec0d658d..9a3ffccc3 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java @@ -872,4 +872,182 @@ public class AvContentController extends BaseController { return "redirect:" + adminPath +"/ntc/av/picUrlList?functionId="+entity.getFunctionId(); } + + //stream配置导出 + @RequestMapping(value = "exportStream") + public void exportsteam(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + + /*//导出选中记录 + * if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + entity.setTableName(IpPortCfg.getTablename()); + Page pageInfo=new Page(request, response,"r"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + if(entity.getIpPort()== null){ + entity.setIpPort(new IpPortCfg()); + } + if(entity.getAvContUrlCfgList()== null){ + entity.setAvContUrlCfg(new AvContUrlCfg());; + } + if(entity.getNtcSubscribeIdCfg()==null){ + entity.setNtcSubscribeIdCfg(new NtcSubscribeIdCfg()); + } + Page page = avContentCfgService.findPage(pageInfo, entity); + titleList.add(entity.getMenuNameCode()); + titleList.add("NTC_UNIVERSAL_IP"); + titleList.add("NTC_STREAMING_MEDIA_URL"); + titleList.add("NTC_SUBSCRIBE_ID"); + classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); + classMap.put("NTC_UNIVERSAL_IP", IpPortCfg.class); + classMap.put("NTC_STREAMING_MEDIA_URL", BaseStringCfg.class); + classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); + + String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String ipPortInfoNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,group_name,"; + String ntcSubscribeIdCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + String regionCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + noExportMap.put("NTC_UNIVERSAL_IP", ipPortInfoNoExport); + noExportMap.put("NTC_STREAMING_MEDIA_URL", regionCfgNoExport); + noExportMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeIdCfgNoExport); + List ipList=new ArrayList(); + List subscribeInfoList=new ArrayList(); + List streamurlList=new ArrayList(); + for (CfgIndexInfo cfg : page.getList()) { + Map maps=avContentCfgService.exportstream(cfg); + ipList.addAll(maps.get("NTC_UNIVERSAL_IP")); + streamurlList.addAll(maps.get("NTC_STREAMING_MEDIA_URL")); + subscribeInfoList.addAll(maps.get("NTC_SUBSCRIBE_ID")); + } + streamurlList=BaseStringCfg.replaceBaseKeyList(streamurlList); + dataMap.put(entity.getMenuNameCode(), page.getList()); + dataMap.put("NTC_UNIVERSAL_IP", ipList); + dataMap.put("NTC_STREAMING_MEDIA_URL", streamurlList); + dataMap.put("NTC_SUBSCRIBE_ID", subscribeInfoList); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("stream export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); + } + + //voip配置导出 + @RequestMapping(value = "exportVoip") + public void exportvoip(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + + /*//导出选中记录 + * if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + entity.setTableName(IpPortCfg.getTablename()); + Page pageInfo=new Page(request, response,"r"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + if(entity.getIpPort()== null){ + entity.setIpPort(new IpPortCfg()); + } + if(entity.getVoipAccount()== null){ + entity.setVoipAccount(new AvVoipAccountCfg()); + } + if(entity.getNtcSubscribeIdCfg()==null){ + entity.setNtcSubscribeIdCfg(new NtcSubscribeIdCfg()); + } + Page page = avContentCfgService.findPage(new Page(request, response,"r"), entity); + titleList.add(entity.getMenuNameCode()); + titleList.add("NTC_UNIVERSAL_IP"); + titleList.add("NTC_VOIP_ACCOUNT"); + titleList.add("NTC_SUBSCRIBE_ID"); + classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); + classMap.put("NTC_UNIVERSAL_IP", IpPortCfg.class); + classMap.put("NTC_VOIP_ACCOUNT", BaseStringCfg.class); + classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); + + String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String ipPortInfoNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,group_name,"; + String ntcSubscribeIdCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + String regionCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + noExportMap.put("NTC_UNIVERSAL_IP", ipPortInfoNoExport); + noExportMap.put("NTC_VOIP_ACCOUNT", regionCfgNoExport); + noExportMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeIdCfgNoExport); + List ipList=new ArrayList(); + List subscribeInfoList=new ArrayList(); + List countlList=new ArrayList(); + for (CfgIndexInfo cfg : page.getList()) { + Map maps=avContentCfgService.exportvoip(cfg); + ipList.addAll(maps.get("NTC_UNIVERSAL_IP")); + countlList.addAll(maps.get("NTC_VOIP_ACCOUNT")); + subscribeInfoList.addAll(maps.get("NTC_SUBSCRIBE_ID")); + } + countlList=BaseStringCfg.replaceBaseKeyList(countlList); + dataMap.put(entity.getMenuNameCode(), page.getList()); + dataMap.put("NTC_UNIVERSAL_IP", ipList); + dataMap.put("NTC_VOIP_ACCOUNT", countlList); + dataMap.put("NTC_SUBSCRIBE_ID", subscribeInfoList); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("voip export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); + } } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java index c672e6ccd..16b6b9eac 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvController.java @@ -1,6 +1,11 @@ package com.nis.web.controller.configuration.ntc; import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -10,13 +15,18 @@ import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.io.filefilter.IOFileFilter; +import org.apache.tools.zip.ZipOutputStream; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.FunctionRegionDict; @@ -25,22 +35,29 @@ import com.nis.domain.Page; import com.nis.domain.configuration.AvFileSampleCfg; import com.nis.domain.configuration.AvSignSampleCfg; import com.nis.domain.configuration.AvSignSampleCfgModel; +import com.nis.domain.configuration.FileDigestCfg; +import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.maat.ToMaatResult; import com.nis.domain.maat.ToMaatResult.ResponseData; import com.nis.exceptions.CallExternalProceduresException; import com.nis.exceptions.MaatConvertException; import com.nis.exceptions.MultiPartNewException; import com.nis.util.ConfigServiceUtil; +import com.nis.util.Configurations; import com.nis.util.Constants; import com.nis.util.DictUtils; import com.nis.util.FileUtils; import com.nis.util.JsonMapper; import com.nis.util.StringUtil; +import com.nis.util.StringUtils; import com.nis.web.controller.BaseController; import com.nis.web.security.UserUtils; +import com.nis.web.security.SystemAuthorizingRealm.Principal; import it.sauronsoftware.jave.AudioInfo; import it.sauronsoftware.jave.Encoder; +import it.sauronsoftware.jave.EncoderException; +import it.sauronsoftware.jave.InputFormatException; import it.sauronsoftware.jave.MultimediaInfo; import it.sauronsoftware.jave.VideoInfo; @@ -120,20 +137,53 @@ public class AvController extends BaseController { //保存文件样例配置 @RequestMapping(value = {"/sample/saveFileSample"}) public String saveFileSample(Model model,HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes, - String ids,AvFileSampleCfg entity,MultipartFile srcFile,MultipartFile sampleFile){ + String ids,AvFileSampleCfg entity,MultipartFile srcFile,MultipartFile sampleFile,String picPath,String videoToPicture){ try{ // if(srcFile!=null && sampleFile!=null && // srcFile.getSize()>0 && sampleFile.getSize()>0){ + String sep = System.getProperty("file.separator"); + String srcFilePath = Constants.AV_FILE_PATH+entity.getCfgType()+sep+"srcFile";//源文件保存路径 + String sampleFilePath = Constants.AV_FILE_PATH+entity.getCfgType()+sep+"sampleFile";//样例文件保存路径 + String resultFilePath = Constants.AV_FILE_PATH+entity.getCfgType()+sep+"resultFile";//结果文件保存路径 + FileUtils.createDirectory(srcFilePath); + FileUtils.createDirectory(sampleFilePath); + String fileName = UUID.randomUUID()+""; + + //视频样例生成并选中的图片压缩为zip文件 + if("true".equals(videoToPicture)){ + if(!StringUtils.isBlank(entity.getSrcPath())){ + String[] srcArray = entity.getSrcPath().split("\\|");//所选图片数组 + String srcFileAllPath = srcFilePath+sep+fileName+".zip"; + File zipFile = new File(srcFileAllPath); + ZipOutputStream zouts = new ZipOutputStream(new FileOutputStream(zipFile)); + for(String s:srcArray){ + if(!"".equals(s)){ + String filePath = picPath+sep+s; + File file = new File(filePath); + //将文件添加至压缩文件 + FileUtils.zipFilesToZipFile(file.getParent(), file, zouts); + file.delete(); + } + } + if(zouts!=null){ + zouts.close(); + } + FileInputStream input = new FileInputStream(srcFileAllPath); + srcFile = new MockMultipartFile(zipFile.getName(), input); + if(input!=null){ + input.close(); + } + } + } + if(srcFile!=null && srcFile.getSize()>0 && entity!=null){ - String sep = System.getProperty("file.separator"); - String srcFilePath = Constants.AV_FILE_PATH+entity.getCfgType()+sep+"srcFile";//源文件保存路径 - String sampleFilePath = Constants.AV_FILE_PATH+entity.getCfgType()+sep+"sampleFile";//样例文件保存路径 - String resultFilePath = Constants.AV_FILE_PATH+entity.getCfgType()+sep+"resultFile";//结果文件保存路径 - FileUtils.createDirectory(srcFilePath); - FileUtils.createDirectory(sampleFilePath); + String srcFileAllPath = ""; + if(StringUtil.isBlank(srcFile.getOriginalFilename())){ + srcFileAllPath = srcFilePath+sep+fileName+FileUtils.getSuffix(srcFile.getName(), true); + }else{ + srcFileAllPath = srcFilePath+sep+fileName+FileUtils.getSuffix(srcFile.getOriginalFilename(), true); + } - String fileName = UUID.randomUUID()+""; - String srcFileAllPath = srcFilePath+sep+fileName+FileUtils.getSuffix(srcFile.getOriginalFilename(), true); String sampleFileAllPath = sampleFilePath+sep+fileName+".sample"; String resultFileAllPath = resultFilePath+sep+fileName+".result"; entity.setSrcPath(srcFileAllPath); @@ -141,8 +191,9 @@ public class AvController extends BaseController { entity.setResultPath(resultFileAllPath); File uploadSrcFile = new File(srcFileAllPath); -// File uploadSampleFile = new File(sampleFileAllPath); - FileCopyUtils.copy(srcFile.getBytes(), uploadSrcFile);//保存源文件 + if(!uploadSrcFile.exists()){ + FileCopyUtils.copy(srcFile.getBytes(), uploadSrcFile);//保存源文件 + } entity.setSrcUrl(""); entity.setSampleUrl(""); /*String host = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath(); @@ -155,40 +206,33 @@ public class AvController extends BaseController { entity.setSrcUrl(srcUrl); entity.setSampleUrl(sampleUrl);*/ -// File uploadSrcFile = new File(srcFilePath); -// FileCopyUtils.copy(srcFile.getBytes(), uploadSrcFile); -// String srcMd5 = FileUtils.getFileMD5(uploadSrcFile); -// File uploadSampleFile = new File(sampleFilePath); -// String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile); +// File uploadSrcFile = new File(srcFilePath); +// FileCopyUtils.copy(srcFile.getBytes(), uploadSrcFile); +// String srcMd5 = FileUtils.getFileMD5(uploadSrcFile); +// File uploadSampleFile = new File(sampleFilePath); +// String sampleMd5 = FileUtils.getFileMD5(uploadSampleFile); -// entity.setSrcMd5(srcMd5); -// entity.setSampleMd5(sampleMd5); +// entity.setSrcMd5(srcMd5); +// entity.setSampleMd5(sampleMd5); //音频、视频、VoIP、说话人(音频)、人脸识别(视频)样例需要验证时长 - if(entity.getCfgType().equals(Constants.AV_SAMPLE_AUDIO_REGION) - || entity.getCfgType().equals(Constants.AV_SAMPLE_VIDEO_REGION) - || entity.getCfgType().equals(Constants.AV_SAMPLE_VOIP_REGION) - || entity.getCfgType().equals(Constants.MM_SPEAKER_RECOGNIZATION_REGION) - || entity.getCfgType().equals(Constants.MM_FACE_RECOGNIZATION_REGION)){ - //验证音视频文件时长 - Encoder encoder = new Encoder(); - String length = ""; - MultimediaInfo m = encoder.getInfo(uploadSrcFile); - long ls = m.getDuration()/1000; - int hour = (int) (ls/3600); - int minute = (int) (ls%3600)/60; - int second = (int) (ls-hour*3600-minute*60); - length = hour+"'"+minute+"''"+second+"'''"; - logger.info(uploadSrcFile.getName()+"时长:"+length); - if(ls>0 && second>Constants.AV_DURATION_LIMIT){ + if(Constants.AUDIO_FILE_TYPE.contains(FileUtils.getSuffix(uploadSrcFile.getName(),false)) + ||Constants.VIDEO_FILE_TYPE.contains(FileUtils.getSuffix(uploadSrcFile.getName(),false)) + ||Constants.VOIP_FILE_TYPE.contains(FileUtils.getSuffix(uploadSrcFile.getName(),false)) + ||Constants.SPEAKER_FILE_TYPE.contains(FileUtils.getSuffix(uploadSrcFile.getName(),false)) + ||Constants.FACE_FILE_TYPE.contains(FileUtils.getSuffix(uploadSrcFile.getName(),false)) + ){ + if(!validateAvDuration(uploadSrcFile)){ addMessage(redirectAttributes,"exceeds_duration_limit"); logger.error("The duration of uploaded files exceeds the limit("+Constants.AV_DURATION_LIMIT+"s)."); throw new MultiPartNewException(this.getMsgProp().getProperty("exceeds_duration_limit")); } + } } + avCfgService.saveOrUpdateAvFileSample(entity, srcFile); addMessage(redirectAttributes,"save_success"); @@ -226,7 +270,7 @@ public class AvController extends BaseController { @RequestMapping(value = {"/sample/updateAvFileSampleValid"}) public String updateAvFileSampleValid(Integer isAudit,Integer isValid,String ids,Integer functionId,RedirectAttributes redirectAttributes){ avCfgService.updateAvFileSampleValid(isAudit,isValid,ids); - addMessage(redirectAttributes,"delete_failed"); + addMessage(redirectAttributes,"delete_success"); return "redirect:" + adminPath +"/ntc/av/sample/fileSampleList?functionId="+functionId; } //修改文件样例配置审核状态 @@ -418,4 +462,160 @@ public class AvController extends BaseController { } return "redirect:" + adminPath +"/ntc/av/sample/signSampleList?functionId="+functionId; } + + //ysp配置导出 + @RequestMapping(value = "exportYsp") + public void exportysp(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")AvFileSampleCfg entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + + /*//导出选中记录 + * if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + entity.setTableName(IpPortCfg.getTablename()); + Page pageInfo=new Page(request, response,"a"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + Page page = avCfgService.getAvFileSampleList(pageInfo, entity); + titleList.add(entity.getMenuNameCode()); + classMap.put(entity.getMenuNameCode(), AvFileSampleCfg.class); + String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + dataMap.put(entity.getMenuNameCode(), page.getList()); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("ysp export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); + } + + /** + * 验证音视频时长 + * @throws EncoderException + * @throws InputFormatException + */ + public boolean validateAvDuration(File file) throws InputFormatException, EncoderException{ + //验证音视频文件时长 + Encoder encoder = new Encoder(); + String length = ""; + MultimediaInfo m = encoder.getInfo(file); + long ls = m.getDuration()/1000; + int hour = (int) (ls/3600); + int minute = (int) (ls%3600)/60; + int second = (int) (ls-hour*3600-minute*60); + length = hour+"'"+minute+"''"+second+"'''"; + logger.info(file.getName()+"时长:"+length); + if(ls>0 && second>Constants.AV_DURATION_LIMIT){ + return false; + }else{ + return true; + } + } + /** + * 上传视频文件,调用脚本生成关键帧图片,返回图片保存路径 + * @param cfg + * @param functionId + * @param redirectAttributes + * @return + */ + @ResponseBody + @RequestMapping(value = {"/sample/videoToPicture"}) + public Map videoToPicture(Model model,@RequestParam("srcFile") CommonsMultipartFile srcFile){ + + String sep = System.getProperty("file.separator"); + String random = UUID.randomUUID()+""; + String srcFilePath = Constants.AV_FILE_PATH+"video"+sep+"srcFile";//视频源文件保存路径 + String picFilePath = StringUtils.getUserfilesBaseDir()+"video"+sep+"picFile";//视频生成的关键帧图片文件保存路径 + + FileUtils.createDirectory(srcFilePath); + FileUtils.createDirectory(picFilePath); + String srcFileAllPath = srcFilePath+sep+random+FileUtils.getSuffix(srcFile.getOriginalFilename(), true);//新的文件名 + File uploadSrcFile = new File(srcFileAllPath); + Map map = new HashMap(); + map.put("picFilePath", picFilePath); + try { + FileCopyUtils.copy(srcFile.getBytes(), uploadSrcFile);//保存源文件 + if(validateAvDuration(uploadSrcFile)){ + String shellName = Constants.VEDIO_TO_PICTURE_PROC; +// String params = srcFileAllPath+" "+picFilePath+" 0.95 90.0 0.5"; + String params = srcFileAllPath+" "+picFilePath; + Map resultMap = avCfgService.execShell(shellName, params); + if(resultMap.get("exitStatus").equals(0)){//调用外部程序成功 + //关键帧图片生成成功,删除原视频文件 + FileUtils.deleteFile(srcFileAllPath); + map.put("status", 1); + map.put("msg", "success"); + } + }else{ + map.put("status", 0); + map.put("msg", this.getMsgProp().get("exceeds_duration_limit")); + } + + } catch (IOException e) { + e.printStackTrace(); + map.put("status", 0); + map.put("msg", e.getMessage()); + } catch (InputFormatException e) { + e.printStackTrace(); + map.put("status", 0); + map.put("msg", e.getMessage()); + } catch (EncoderException e) { + e.printStackTrace(); + map.put("status", 0); + map.put("msg", e.getMessage()); + } + return map; + } + + @RequestMapping(value = {"/sample/selectVedioPicture"}) + public String selectVedioPicture(Model model,HttpServletRequest request,String picFilePath,String srcPath){ + Collection files = FileUtils.listFiles(new File(picFilePath), null, true); + List> fileList = new ArrayList(); + String picUrl = picFilePath.substring(picFilePath.indexOf(Configurations.getStringProperty("userfiles.basedir", "upload"))); + String sep = System.getProperty("file.separator"); + String[] checkedPic = null; + if(srcPath!=null){ + checkedPic = srcPath.split("\\|"); + } + for(File f:files){ + Map map = new HashMap(); + map.put("picUrl", StringUtils.replace(picUrl+"/"+f.getName(), "\\", "/")); + map.put("picName", f.getName()); + boolean checked = false; + if(checkedPic!=null){ + for(String pic:checkedPic){ + if(f.getName().equals(pic)){ + checked = true; + } + } + }else{ + checked = true;//默认全选 + } + + map.put("checked", checked); + fileList.add(map); + } + model.addAttribute("fileList", fileList); + model.addAttribute("picFilePath",picFilePath); + return "/cfg/av/videoPictureList"; + } + } diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java index a589969a3..d0fbf7cca 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/BgpCfgController.java @@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; +import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.IpPortCfg; @@ -182,11 +183,11 @@ public class BgpCfgController extends BaseController{ Page page = bgpCfgService.getBgpList(pageInfo, entity); titleList.add(entity.getMenuNameCode()); titleList.add("NTC_IP"); - titleList.add("NTC_DNS_REGION"); + titleList.add("NTC_BGP_AS"); titleList.add("NTC_SUBSCRIBE_ID"); classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); classMap.put("NTC_IP", IpPortCfg.class); - classMap.put("NTC_DNS_REGION", ComplexkeywordCfg.class); + classMap.put("NTC_BGP_AS", BaseStringCfg.class); classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; String ipPortInfoNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" @@ -203,20 +204,21 @@ public class BgpCfgController extends BaseController{ +",userregion1,userregion2,userregion3,userregion4,userregion5,"; noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); noExportMap.put("NTC_IP", ipPortInfoNoExport); - noExportMap.put("NTC_DNS_REGION", regionCfgNoExport); + noExportMap.put("NTC_BGP_AS", regionCfgNoExport); noExportMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeIdCfgNoExport); List ipList=new ArrayList(); List subscribeInfoList=new ArrayList(); - List regionInfoList=new ArrayList(); + List asInfoList=new ArrayList(); for (CfgIndexInfo cfg : page.getList()) { - CfgIndexInfo cfgIndexInfo=websiteCfgService.exportdns(cfg); + CfgIndexInfo cfgIndexInfo=bgpCfgService.exportbgp(cfg); ipList.addAll(cfgIndexInfo.getIpPortList()); subscribeInfoList.addAll(cfgIndexInfo.getNtcSubscribeIdCfgList()); - regionInfoList.addAll(cfgIndexInfo.getDomainList()); + asInfoList.addAll(cfgIndexInfo.getNtcBgpAsCfgList()); } + asInfoList=BaseStringCfg.replaceBaseKeyList(asInfoList); dataMap.put(entity.getMenuNameCode(), page.getList()); dataMap.put("NTC_IP", ipList); - dataMap.put("NTC_DNS_REGION", regionInfoList); + dataMap.put("NTC_BGP_AS", asInfoList); dataMap.put("NTC_SUBSCRIBE_ID", subscribeInfoList); /*}*/ diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java index 68c07ab21..86f7f2d74 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java @@ -26,6 +26,7 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.nis.domain.Page; +import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.FileDigestCfg; @@ -489,12 +490,12 @@ public class FileTransferCfgController extends BaseController{ } Page page = fileTransferCfgService.getFtpList(pageInfo, entity); titleList.add(entity.getMenuNameCode()); - titleList.add("NTC_IP"); + titleList.add("NTC_UNIVERSAL_IP"); titleList.add("NTC_FTP_URL"); titleList.add("NTC_FTP_CONTENT"); titleList.add("NTC_SUBSCRIBE_ID"); classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); - classMap.put("NTC_IP", IpPortCfg.class); + classMap.put("NTC_UNIVERSAL_IP", IpPortCfg.class); classMap.put("NTC_FTP_URL", BaseStringCfg.class); classMap.put("NTC_FTP_CONTENT", BaseStringCfg.class); classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); @@ -514,7 +515,7 @@ public class FileTransferCfgController extends BaseController{ +",userregion1,userregion2,userregion3,userregion4,userregion5,"; noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); - noExportMap.put("NTC_IP", ipPortInfoNoExport); + noExportMap.put("NTC_UNIVERSAL_IP", ipPortInfoNoExport); noExportMap.put("NTC_FTP_URL", regionCfgNoExport); noExportMap.put("NTC_FTP_CONTENT", regionCfgNoExport); noExportMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeIdCfgNoExport); @@ -532,7 +533,7 @@ public class FileTransferCfgController extends BaseController{ ftpkeyList=BaseStringCfg.replaceBaseKeyList(ftpkeyList); ftpurlList=BaseStringCfg.replaceBaseKeyList(ftpurlList); dataMap.put(entity.getMenuNameCode(), page.getList()); - dataMap.put("NTC_IP", ipList); + dataMap.put("NTC_UNIVERSAL_IP", ipList); dataMap.put("NTC_FTP_URL", ftpurlList); dataMap.put("NTC_FTP_CONTENT", ftpkeyList); dataMap.put("NTC_SUBSCRIBE_ID", subscribeInfoList); @@ -545,5 +546,140 @@ public class FileTransferCfgController extends BaseController{ //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); } - + //p2p配置导出 + @RequestMapping(value = "exportP2p") + public void exportp2p(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + + /*//导出选中记录 + * if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + entity.setTableName(IpPortCfg.getTablename()); + Page pageInfo=new Page(request, response,"a"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + Page page = fileTransferCfgService.getP2pList(pageInfo, entity); + + titleList.add(entity.getMenuNameCode()); + titleList.add("NTC_UNIVERSAL_IP"); + titleList.add("NTC_P2P_KEYWORDS"); + titleList.add("NTC_P2P_HASH_BIN"); + titleList.add("NTC_SUBSCRIBE_ID"); + classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); + classMap.put("NTC_UNIVERSAL_IP", IpPortCfg.class); + classMap.put("NTC_P2P_KEYWORDS", BaseStringCfg.class); + classMap.put("NTC_P2P_HASH_BIN", BaseStringCfg.class); + classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); + + String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String ipPortInfoNoExport=",do_log,action,config_describe,valid_identifier,is_audit,ir_type,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion2,userregion3,userregion4,userregion5,group_name,"; + String ntcSubscribeIdCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + String hashCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion2,userregion3,userregion4,userregion5,"; + String keyCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + noExportMap.put("NTC_UNIVERSAL_IP", ipPortInfoNoExport); + noExportMap.put("NTC_P2P_KEYWORDS", keyCfgNoExport); + noExportMap.put("NTC_P2P_HASH_BIN", hashCfgNoExport); + noExportMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeIdCfgNoExport); + List ipList=new ArrayList(); + List subscribeInfoList=new ArrayList(); + List hashList=new ArrayList(); + List keywordList=new ArrayList(); + for (CfgIndexInfo cfg : page.getList()) { + Map maps=fileTransferCfgService.exportp2p(cfg); + keywordList.addAll(maps.get("NTC_P2P_KEYWORDS")); + hashList.addAll(maps.get("NTC_P2P_HASH_BIN")); + ipList.addAll(maps.get("NTC_UNIVERSAL_IP")); + subscribeInfoList.addAll(maps.get("NTC_SUBSCRIBE_ID")); + } + keywordList=BaseStringCfg.replaceBaseKeyList(keywordList); + hashList=BaseStringCfg.replaceBaseKeyList(hashList); + dataMap.put(entity.getMenuNameCode(), page.getList()); + dataMap.put("NTC_UNIVERSAL_IP", ipList); + dataMap.put("NTC_P2P_KEYWORDS", keywordList); + dataMap.put("NTC_P2P_HASH_BIN", hashList); + dataMap.put("NTC_SUBSCRIBE_ID", subscribeInfoList); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("p2p export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); + } + + + //file配置导出 + @RequestMapping(value = "exportFile") + public void exportfile(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")FileDigestCfg entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + + /*//导出选中记录 + * if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + entity.setTableName(IpPortCfg.getTablename()); + Page pageInfo=new Page(request, response,"a"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + Page page = fileTransferCfgService.getFileDigestList(pageInfo, entity); + titleList.add(entity.getMenuNameCode()); + classMap.put(entity.getMenuNameCode(), FileDigestCfg.class); + String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + dataMap.put(entity.getMenuNameCode(), page.getList()); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("file export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); + } } 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 4a2d523c3..8f22c380a 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 @@ -295,13 +295,13 @@ public class IpController extends BaseController{ //ip配置导入 @RequestMapping(value = "import", method=RequestMethod.POST) - public String importIp(RedirectAttributes redirectAttributes, + public String importIp(HttpServletRequest request,HttpServletResponse response,RedirectAttributes redirectAttributes, @RequestParam("files") MultipartFile[] files ,Integer serviceDictId ,Integer requestId ,String regionDictIds ,String importPath) { - this._import(redirectAttributes, files,serviceDictId,regionDictIds,requestId); + this._import(request,response,redirectAttributes, files,serviceDictId,regionDictIds,requestId); return "redirect:" + adminPath+ importPath; } //ip配置导出 diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java index 7e9962f82..218a248e9 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/WebsiteController.java @@ -521,9 +521,9 @@ public class WebsiteController extends BaseController{ - //ip配置导出 + //http配置导出 @RequestMapping(value = "exportHttp") - public String exportIp(Model model,HttpServletRequest request,HttpServletResponse response, + public String exportHttp(Model model,HttpServletRequest request,HttpServletResponse response, @ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){ try { //export data info @@ -723,5 +723,99 @@ public class WebsiteController extends BaseController{ } //return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId(); } + + //ssl配置导出 + @RequestMapping(value = "exportSsl") + public String exportssl(Model model,HttpServletRequest request,HttpServletResponse response, + @ModelAttribute("cfg")CfgIndexInfo entity,String ids,RedirectAttributes redirectAttributes){ + try { + //export data info + List titleList=new ArrayList(); + Map> classMap=new HashMap>(); + Map dataMap=new HashMap(); + Map noExportMap=new HashMap(); + + List regionList = DictUtils.getFunctionRegionDictList(entity.getFunctionId()); + + /*//导出选中记录 + if(!StringUtil.isEmpty(ids)){ + for(String id:ids.split(",")){ + Long.parseLong(id); + } + //List list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids); + }else{*/ + //条件导出数据大于最大导出数,只导出最大导出条数 + Page pageInfo=new Page(request, response,"a"); + if(pageInfo.getCount()>Constants.MAX_EXPORT_SIZE){ + pageInfo.setPageNo(1); + pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE); + }else{ + pageInfo.setPageNo(1); + pageInfo.setPageSize(-1); + } + Page page = websiteCfgService.getWebsiteList(pageInfo, entity); + + titleList.add(entity.getMenuNameCode()); + titleList.add("NTC_UNIVERSAL_IP"); + titleList.add("NTC_SSL_SNI"); + titleList.add("NTC_SSL_SAN"); + titleList.add("NTC_SSL_CN"); + titleList.add("NTC_SUBSCRIBE_ID"); + classMap.put(entity.getMenuNameCode(), CfgIndexInfo.class); + classMap.put("NTC_UNIVERSAL_IP", IpPortCfg.class); + classMap.put("NTC_SSL_SNI", BaseStringCfg.class); + classMap.put("NTC_SSL_SAN", BaseStringCfg.class); + classMap.put("NTC_SSL_CN", BaseStringCfg.class); + classMap.put("NTC_SUBSCRIBE_ID", NtcSubscribeIdCfg.class); + String cfgIndexInfoNoExport=",group_name,userregion1,userregion2,userregion3,userregion4,userregion5,"; + String sslNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + String ipPortCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,group_name,"; + String ntcSubscribeIdCfgNoExport=",do_log,action,config_describe,valid_identifier,is_audit,creator,creator" + + ",config_time,editor,edit_time,auditor,audit_time" + +",letter,whether_area_block,classification,attribute,label" + +",userregion1,userregion2,userregion3,userregion4,userregion5,"; + noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport); + noExportMap.put("NTC_UNIVERSAL_IP", ipPortCfgNoExport); + noExportMap.put("NTC_SSL_SNI", sslNoExport); + noExportMap.put("NTC_SSL_SAN", sslNoExport); + noExportMap.put("NTC_SSL_CN", sslNoExport); + noExportMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeIdCfgNoExport); + + List sslSniList = new ArrayList<>(); + List sslSnaList = new ArrayList<>(); + List sslCnList = new ArrayList<>(); + List ipPortList = new ArrayList<>(); + List subscribeIdList = new ArrayList<>(); + for (CfgIndexInfo cfg : page.getList()) { + Map maps=websiteCfgService.exportssl(cfg); + sslSniList.addAll(maps.get("NTC_SSL_SNI")); + sslSnaList.addAll(maps.get("NTC_SSL_SAN")); + sslCnList.addAll(maps.get("NTC_SSL_CN")); + ipPortList.addAll(maps.get("NTC_UNIVERSAL_IP")); + subscribeIdList.addAll(maps.get("NTC_SUBSCRIBE_ID")); + } + sslSniList=BaseStringCfg.replaceBaseKeyList(sslSniList); + sslSnaList=BaseStringCfg.replaceBaseKeyList(sslSnaList); + sslCnList=BaseStringCfg.replaceBaseKeyList(sslCnList); + dataMap.put(entity.getMenuNameCode(), page.getList()); + dataMap.put("NTC_UNIVERSAL_IP", ipPortList); + dataMap.put("NTC_SSL_SNI", sslSniList); + dataMap.put("NTC_SSL_SAN", sslSnaList); + dataMap.put("NTC_SSL_CN", sslCnList); + dataMap.put("NTC_SUBSCRIBE_ID",subscribeIdList); + /*}*/ + this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap); + } catch (Exception e) { + logger.error("http export failed",e); + addMessage(redirectAttributes, "export_failed"); + } + return "redirect:" + adminPath +"/ntc/website/httpList?functionId="+entity.getFunctionId(); + } } diff --git a/src/main/java/com/nis/web/controller/configuration/proxy/PxyObjKeyringController.java b/src/main/java/com/nis/web/controller/configuration/proxy/PxyObjKeyringController.java index 9fc8da615..b45511248 100644 --- a/src/main/java/com/nis/web/controller/configuration/proxy/PxyObjKeyringController.java +++ b/src/main/java/com/nis/web/controller/configuration/proxy/PxyObjKeyringController.java @@ -9,6 +9,7 @@ import java.security.cert.X509Certificate; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.UUID; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; @@ -19,6 +20,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -31,8 +33,11 @@ import com.nis.domain.basics.PolicyGroupInfo; import com.nis.domain.configuration.PxyObjKeyring; import com.nis.domain.maat.ToMaatResult; import com.nis.domain.maat.ToMaatResult.ResponseData; +import com.nis.exceptions.CallExternalProceduresException; import com.nis.exceptions.MaatConvertException; +import com.nis.exceptions.MultiPartNewException; import com.nis.util.ConfigServiceUtil; +import com.nis.util.Constants; import com.nis.util.FileUtils; import com.nis.util.JsonMapper; import com.nis.util.StringUtil; @@ -75,30 +80,58 @@ public class PxyObjKeyringController extends BaseController { @RequiresPermissions(value={"proxy:intercept:config"}) public String saveOrUpdate(Model model,HttpServletRequest request,HttpServletResponse response, @ModelAttribute("cfg")PxyObjKeyring cfg, - MultipartFile privateKeyFileI, + MultipartFile privateKeyFileI, MultipartFile publicKeyFileI, RedirectAttributes redirectAttributes){ File file = null; - try{ - if(publicKeyFileI != null) { - // 获取公钥信息 - X509Certificate cert=FileUtils.getCertificateInfo(publicKeyFileI.getInputStream()); - String issuer=cert.getIssuerDN().getName();//颁发者 - Date notBefore=cert.getNotBefore();//起始时间 - Date notAfter=cert.getNotAfter();//结束时间 - String subject=cert.getSubjectDN().getName();//颁发给 - cfg.setIssuer(StringUtil.isEmpty(issuer)?"":issuer.trim()); - cfg.setSubject(StringUtil.isEmpty(subject)?"":subject.trim()); - cfg.setNotBeforeTime(notBefore); - cfg.setNotAfterTime(notAfter); - } - }catch (Exception e) { - logger.error("证书信息获取失败",e); - addMessage(redirectAttributes,"save_failed"); + boolean validFlag=true; + try { + boolean publicKeyFileflag=validCertFileContent(publicKeyFileI,"-incert"); + boolean privateKeyFileflag=validCertFileContent(privateKeyFileI,"-inkey"); + if(!publicKeyFileflag && !privateKeyFileflag){ + addMessage(redirectAttributes,"save_failed"); + logger.error(publicKeyFileI.getOriginalFilename()+" and "+privateKeyFileI.getOriginalFilename()+" file non certificate file format "); + throw new MultiPartNewException( + this.getMsgProp().getProperty("certificate_error") + ); + }else if(!publicKeyFileflag){ + addMessage(redirectAttributes,"save_failed"); + logger.error(publicKeyFileI.getOriginalFilename()+" file non public key file format "); + throw new MultiPartNewException(this.getMsgProp().getProperty("public_file_error")); + }else if(!privateKeyFileflag){ + addMessage(redirectAttributes,"save_failed"); + logger.error(privateKeyFileI.getOriginalFilename()+" file non private key file format "); + throw new MultiPartNewException(this.getMsgProp().getProperty("private_file_error")); + } + } catch (Exception e) { + validFlag=false; + logger.error("证书文件校验失败",e); + addMessage(redirectAttributes,e.getMessage()); } - - try{ - + + if(validFlag){ + validFlag=true; + try{ + + if(publicKeyFileI != null) { + // 获取公钥信息 + X509Certificate cert=FileUtils.getCertificateInfo(publicKeyFileI.getInputStream()); + String issuer=cert.getIssuerDN().getName();//颁发者 + Date notBefore=cert.getNotBefore();//起始时间 + Date notAfter=cert.getNotAfter();//结束时间 + String subject=cert.getSubjectDN().getName();//颁发给 + cfg.setIssuer(StringUtil.isEmpty(issuer)?"":issuer.trim()); + cfg.setSubject(StringUtil.isEmpty(subject)?"":subject.trim()); + cfg.setNotBeforeTime(notBefore); + cfg.setNotAfterTime(notAfter); + } + }catch (Exception e) { + logger.error("证书信息获取失败",e); + addMessage(redirectAttributes,e.getMessage()); + } + } + if(validFlag){ + try{ if(publicKeyFileI != null) { String filename = publicKeyFileI.getOriginalFilename(); String prefix = FileUtils.getPrefix(filename, false); @@ -146,16 +179,63 @@ public class PxyObjKeyringController extends BaseController { } } pxyObjKeyringService.saveOrUpdate(cfg); - - addMessage(redirectAttributes,"save_success"); - }catch(Exception e){ - e.printStackTrace(); - addMessage(redirectAttributes,"save_failed"); + + addMessage(redirectAttributes,"save_success"); + }catch(Exception e){ + logger.error("证书上传失败",e); + if(e instanceof MaatConvertException) { + addMessage(redirectAttributes,e.getMessage()); + }else { + addMessage(redirectAttributes,e.getMessage()); + } + } } return "redirect:" + adminPath +"/proxy/intercept/strateagy/list?functionId="+cfg.getFunctionId(); } - + public boolean validCertFileContent(MultipartFile file,String validateType)throws Exception{ + String os = System.getProperty("os.name").toLowerCase(); + if(!os.contains("windows")){ + //证书文件临时保存路径 + String certFilePath = Constants.CERT_FILE_PATH; + FileUtils.createDirectory(certFilePath); + String filePath=certFilePath + +File.separator + +UUID.randomUUID() + +FileUtils.getSuffix(file.getOriginalFilename(), true); + File uploadFile = new File(filePath); + FileCopyUtils.copy(file.getBytes(), uploadFile); + //加载x509脚本 + String x509Shell=Thread.currentThread() + .getContextClassLoader() + .getResource( + File.separator+"shell" + +File.separator + +Constants.CERT_VALIDATE_FILE).getPath(); + //x509脚本分配可执行权限 + Map resultMap1=avCfgService.execShell("","chmod","+x",filePath); + //验证文件 + logger.info(x509Shell+" "+validateType+" "+filePath); + Map resultMap=avCfgService.execShell(x509Shell,validateType,filePath); + if(resultMap != null + && !StringUtil.isEmpty(resultMap.get("out")) + && (!(resultMap.get("out").toString().indexOf(Constants.CERT_VALIDATE_SUCCESS_INFO) > -1)) + ){ + + logger.error("x509 Out Info:"+resultMap.get("out").toString()); + + //临时文件删除 + logger.info("delete file"+filePath); + FileUtils.deleteFile(filePath); + + return false; + } + //临时文件删除 + logger.info("delete file"+filePath); + FileUtils.deleteFile(filePath); + } + return true; + } @RequestMapping(value = {"/list"}) public String list(Model model,HttpServletRequest request,HttpServletResponse response ,@ModelAttribute("cfg")PxyObjKeyring entity diff --git a/src/main/java/com/nis/web/service/configuration/AppCfgService.java b/src/main/java/com/nis/web/service/configuration/AppCfgService.java index d1cd1a6b9..72d1d0aaf 100644 --- a/src/main/java/com/nis/web/service/configuration/AppCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AppCfgService.java @@ -306,7 +306,12 @@ public class AppCfgService extends BaseService { } } } - + @Transactional(readOnly=false,rollbackFor=RuntimeException.class) + public void savePolicyList(List appPolicyCfgs){ + for (AppPolicyCfg appPolicyCfg : appPolicyCfgs) { + appCfgDao.insertAppPolicyCfg(appPolicyCfg); + } + } @Transactional(readOnly = false, rollbackFor = RuntimeException.class) public void saveOrUpdateAppIpCfg(AppIpCfg entity) throws Exception { // 设置区域运营商信息 diff --git a/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java b/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java index f688ab6e8..183ead19c 100644 --- a/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/AvContentCfgService.java @@ -3,6 +3,7 @@ package com.nis.web.service.configuration; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -24,6 +25,8 @@ import com.nis.domain.configuration.CfgIndexInfo; import com.nis.domain.configuration.HttpUrlCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; +import com.nis.domain.configuration.P2pHashCfg; +import com.nis.domain.configuration.P2pKeywordCfg; import com.nis.domain.maat.MaatCfg; import com.nis.domain.maat.ToMaatBean; import com.nis.domain.maat.ToMaatResult; @@ -35,6 +38,7 @@ import com.nis.domain.maat.MaatCfg.StringCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.DictUtils; import com.nis.util.StringUtil; import com.nis.util.StringUtils; import com.nis.web.dao.configuration.AreaIpCfgDao; @@ -127,6 +131,18 @@ public class AvContentCfgService extends BaseService{ return cfg; } + + public Map exportvoip(CfgIndexInfo entity){ + Map dataMap=new HashMap(); + List ntcSubscribeList=getSubscribeIdCfgList(entity); + List ipPortList = avContentCfgDao.getIpPortList(entity); + List voipAccounts=getVoipAccountCfgList(entity); + dataMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeList); + dataMap.put("NTC_VOIP_ACCOUNT", voipAccounts); + dataMap.put("NTC_UNIVERSAL_IP", ipPortList); + return dataMap; + } + public CfgIndexInfo getUrlCfgIndexInfo(CfgIndexInfo entity) { CfgIndexInfo cfg=avContentCfgDao.getCfgIndexInfo(entity); List ntcSubscribeList=getSubscribeIdCfgList(cfg); @@ -138,6 +154,17 @@ public class AvContentCfgService extends BaseService{ return cfg; } + public Map exportstream(CfgIndexInfo entity){ + Map dataMap=new HashMap(); + List ntcSubscribeList=getSubscribeIdCfgList(entity); + List avContUrlList=avContentCfgDao.getAvContUrlList(entity); + List ipPortList = avContentCfgDao.getIpPortList(entity); + dataMap.put("NTC_SUBSCRIBE_ID", ntcSubscribeList); + dataMap.put("NTC_STREAMING_MEDIA_URL", avContUrlList); + dataMap.put("NTC_UNIVERSAL_IP", ipPortList); + return dataMap; + } + /* public CfgIndexInfo getCfgIndexInfo2(CfgIndexInfo entity) { CfgIndexInfo cfg=avContentCfgDao.getCfgIndexInfo(entity); diff --git a/src/main/java/com/nis/web/service/configuration/BgpCfgService.java b/src/main/java/com/nis/web/service/configuration/BgpCfgService.java index 5cc472225..c0d768634 100644 --- a/src/main/java/com/nis/web/service/configuration/BgpCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/BgpCfgService.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import com.nis.domain.Page; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.CfgIndexInfo; +import com.nis.domain.configuration.ComplexkeywordCfg; import com.nis.domain.configuration.IpPortCfg; import com.nis.domain.configuration.NtcBgpAsCfg; import com.nis.domain.configuration.NtcSubscribeIdCfg; @@ -72,6 +73,20 @@ public class BgpCfgService extends CrudService { return page; } + public CfgIndexInfo exportbgp(CfgIndexInfo entity){ + List ipPortList = bgpCfgDao.getIpPortList(entity); + NtcSubscribeIdCfg subscribeId = new NtcSubscribeIdCfg(); + subscribeId.setCompileId(entity.getCompileId()); + subscribeId.setIsValid(entity.getIsValid()); + List ntcSubscribeIdCfgList = stringCfgDao.findSubscribeIdCfgList(subscribeId); + List ntcBgpAsCfgList = bgpCfgDao.getNtcBgpAsList(entity); + entity.setIpPortList(ipPortList); + entity.setNtcSubscribeIdCfgList(ntcSubscribeIdCfgList); + entity.setNtcBgpAsCfgList(ntcBgpAsCfgList); + return entity; + } + + /** * 保存配置 * @param entity diff --git a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java index b6c639291..6af0b2d27 100644 --- a/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/FileTransferCfgService.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import com.nis.domain.Page; +import com.nis.domain.SysDataDictionaryItem; import com.nis.domain.configuration.AreaIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.CfgIndexInfo; @@ -37,6 +38,7 @@ import com.nis.domain.maat.MaatCfg.StringCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.Constants; +import com.nis.util.DictUtils; import com.nis.util.FileUtils; import com.nis.util.JsonMapper; import com.nis.util.StringUtil; @@ -674,6 +676,22 @@ public class FileTransferCfgService extends CrudService exportp2p(CfgIndexInfo entity){ + Map dataMap=new HashMap(); + List ipPortList = fileTransferCfgDao.getIpPortList(entity); + for (int i = 0; i < ipPortList.size(); i++) { + ipPortList.get(i).setUserRegion1(DictUtils.getDictLabel("P2P_IP_TYPE",ipPortList.get(i).getUserRegion1())); + } + List hashList = fileTransferCfgDao.getP2pHashList(entity); + List keywordList = fileTransferCfgDao.getP2pKeywordList(entity); + List subscribeIdList = fileTransferCfgDao.getP2pSubscribeidList(entity); + dataMap.put("NTC_SUBSCRIBE_ID", subscribeIdList); + dataMap.put("NTC_P2P_KEYWORDS", keywordList); + dataMap.put("NTC_P2P_HASH_BIN", hashList); + dataMap.put("NTC_UNIVERSAL_IP", ipPortList); + return dataMap; + } + /** * 保存p2p配置 * @param entity diff --git a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java index 4739fc293..fc88040d4 100644 --- a/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java +++ b/src/main/java/com/nis/web/service/configuration/WebsiteCfgService.java @@ -113,6 +113,27 @@ public class WebsiteCfgService extends CrudService { } + + public Map exportssl(CfgIndexInfo entity){ + Map dataMap=new HashMap(); + List ipPortList = websiteCfgDao.getIpPortList(entity); + List subscribeIdList = stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity); + entity.setCfgType("NTC_SSL_SNI"); + List sslSniList = websiteCfgDao.getSslKewordList(entity); + entity.setCfgType("NTC_SSL_SAN"); + List sslSanList = websiteCfgDao.getSslKewordList(entity); + entity.setCfgType("NTC_SSL_CN"); + List sslCnList = websiteCfgDao.getSslKewordList(entity); + dataMap.put("NTC_UNIVERSAL_IP", ipPortList); + dataMap.put("NTC_SSL_SNI", sslSniList); + dataMap.put("NTC_SSL_SAN", sslSanList); + dataMap.put("NTC_SSL_CN", sslCnList); + dataMap.put("NTC_SUBSCRIBE_ID", subscribeIdList); + return dataMap; + } + + + public CfgIndexInfo getSslCfg(Long cfgId){ CfgIndexInfo entity = websiteCfgDao.getCfgIndexInfo(cfgId); List ipPortList = websiteCfgDao.getIpPortList(entity); diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index a9fb2e9d7..690f4b8ea 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1264,7 +1264,10 @@ ip_range_in_c=Start IP and end IP in a IP range must with in C subnet ip_range_bit_field=Start IP and end IP in a IP range has the same network number bit field ip_range_smaller=Start IP in a IP range should smaller than end IP alternative_values= Alternative values can be %s +<<<<<<< HEAD certificate_error=Wrong format of public key file and private key file public_file_error=Wrong format of public key file private_file_error=Wrong format of private key file +======= +>>>>>>> branch 'develop' of http://192.168.10.125/k18_web/NFS.git keyframe_pic_required=No keyframe pictures have been selected. \ No newline at end of file diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index 97e9cd269..83a9d45c7 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -537,4 +537,4 @@ cert_file_path=/home/cert/ #证书校验工具名称 cert_validate_file=x509 #证书校验成功的关键信息 -cert_validate_success_info=Successful \ No newline at end of file +cert_validate_success_info=Successful diff --git a/src/main/resources/shell/x509 b/src/main/resources/shell/x509 new file mode 100644 index 000000000..8865303f9 Binary files /dev/null and b/src/main/resources/shell/x509 differ diff --git a/src/main/resources/sql/20181020/update_app_policy_region_service_.sql b/src/main/resources/sql/20181020/update_app_policy_region_service_.sql new file mode 100644 index 000000000..3addc3c66 --- /dev/null +++ b/src/main/resources/sql/20181020/update_app_policy_region_service_.sql @@ -0,0 +1,7 @@ +UPDATE function_service_dict SET region_code='1,2,3' WHERE function_id=63; +UPDATE function_service_dict SET region_code='1,2,3' WHERE function_id=407; +UPDATE function_service_dict SET region_code='1,2,3' WHERE function_id=408; + +UPDATE function_region_dict SET is_import=1 WHERE function_id=63 AND config_service_type='app_policy'; +UPDATE function_region_dict SET is_import=1 WHERE function_id=407 AND config_service_type='app_policy'; +UPDATE function_region_dict SET is_import=1 WHERE function_id=408 AND config_service_type='app_policy'; \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appHttpCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appHttpCfgForm.jsp index 81ed43cc6..bc1f9ea98 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appHttpCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appHttpCfgForm.jsp @@ -117,7 +117,6 @@ $(function(){ - diff --git a/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp index 129250bb1..fa8fbc4ea 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/contUrl/contUrlList.jsp @@ -189,6 +189,7 @@ + <%-- --%> diff --git a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp index a6db5dcff..951cb3461 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleForm.jsp @@ -28,8 +28,49 @@ $(function(){ $("#uploadSrc,#srcFileInfo").on('click',function(){ $("#srcFile").trigger("click"); }); + $("#srcFile").on('change',function(){ $("#srcFileInfo").val($("#srcFile").val()); + var videoToPicture = $("#videoToPicture").val(); + if(videoToPicture=="true"){ + + var fd = new FormData($('#cfgFrom')[0]); + $.ajax({ + url: "${ctx}/ntc/av/sample/videoToPicture", + type: "POST", + processData: false, + contentType: false, + data: fd, + async: true, + cache: false, + beforeSend: function(){ + loading('onloading...'); + }, + success: function(data) { + top.$.jBox.closeTip(); + if(data.status==1){ + $("#picPath").val(data.picFilePath); + $("#showPicture").removeClass("hidden"); + var url = "${ctx}/ntc/av/sample/selectVedioPicture?picFilePath="+encodeURIComponent(data.picFilePath); + $.jBox("iframe:"+url, { + title: "", + width: 1350, + height:800, + dragLimit: true, + buttons: { 'close': true,"ok":"ok" } + }); + }else{ + alert(data.msg); + } + + }, + error:function(jqXHR, textStatus, errorThrown){ + top.$.jBox.closeTip(); + alert(errorThrown); + return false; + } + }); + } }); /* $("#uploadSample,#sampleFileInfo").on('click',function(){ $("#sampleFile").trigger("click"); @@ -64,17 +105,27 @@ $(function(){ var srcFile = $("#srcFile").val(); //var sampleFile = $("#sampleFile").val(); var srcUrl = $("#srcUrl").val(); + var srcPath = $("#srcPath").val(); //var sampleUrl = $("#sampleUrl").val(); - if((srcUrl==null||srcUrl=="") && (srcFile==null || srcFile=="")){ - $("div[for='srcFile']").append(""); - return false; - }/* else if((sampleUrl==null || sampleUrl=="") && (sampleFile==null || sampleFile=="")){ - $("div[for='sampleFile']").append(""); - return false; - } */else{ - loading('onloading...'); - form.submit(); + var videoToPicture = $("#videoToPicture").val(); + if(videoToPicture=="true"){ + if((srcUrl==null||srcUrl=="") && (srcPath==null || srcPath=="")){//srcUrl判断修改时未重新上传文件,srcPath判断修改时重新上传文件但未选择关键帧图片 + $("div[for='srcFileInfo']").append(""); + return false; + }else if(srcFile!=null && srcFile!=""){//选择视频文件 + if(srcPath==null || srcPath==""){//单位选择关键帧图片 + $("div[for='srcFileInfo']").append(""); + return false; + } + } + }else{ + if((srcUrl==null||srcUrl=="") && (srcFile==null || srcFile=="")){ + $("div[for='srcFileInfo']").append(""); + return false; + } } + loading('onloading...'); + form.submit(); }, errorContainer: "#messageBox", @@ -82,6 +133,17 @@ $(function(){ $(element).parents(".form-group").find("div[for='"+element.attr("name")+"']").append(error); }, }); + $("#showPicture").on('click',function(){ + var srcPath = $("#srcPath").val() + var url = "${ctx}/ntc/av/sample/selectVedioPicture?picFilePath="+encodeURIComponent($("#picPath").val())+"&srcPath="+encodeURIComponent(srcPath); + $.jBox("iframe:"+url, { + title: "", + width: 1350, + height:800, + dragLimit: true, + buttons: { 'close': true,"ok":"ok" } + }); + }) }); function hiddenlevel(){ @@ -123,8 +185,9 @@ function hiddenlevel(){
- + + @@ -176,18 +239,42 @@ function hiddenlevel(){
<%-- --%> - -
- " class="required form-control" style=" background-color:transparent" - aria-required="true" type="text" value="${_cfg.srcUrl }"> - -
- -
- <%-- ${_cfg.srcUrl } --%> -
- + + + + + + + +
+ " class="required form-control" style=" background-color:transparent" + aria-required="true" type="text" value="${_cfg.srcUrl }"> + +
+ +
+ +
+ + +
+ +
+ " class="required form-control" style=" background-color:transparent" + aria-required="true" type="text" value="${_cfg.srcUrl }"> + +
+ +
+ <%-- ${_cfg.srcUrl } --%> +
+ +
+
diff --git a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp index b327db315..aa09e0cfa 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/fileSampleList.jsp @@ -129,6 +129,7 @@ +
diff --git a/src/main/webapp/WEB-INF/views/cfg/av/videoPictureList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/videoPictureList.jsp new file mode 100644 index 000000000..4f433efc2 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/av/videoPictureList.jsp @@ -0,0 +1,156 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + + +
+ +
+
+
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+ <%-- + + + + + + + + + + + + + + + + +
${status.index+1} + + + +
--%> +
+ +
+
+ +
+
+ ${file.picName } +
+
+ +
+
+
+
+ <%-- + + + + + + + +

+
+
--%> +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp index 98bc98001..895ef17be 100644 --- a/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/av/voip/voipList.jsp @@ -189,6 +189,7 @@ + <%-- --%> diff --git a/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp b/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp index 258c106df..9b85673d4 100644 --- a/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp @@ -101,6 +101,9 @@ onClick="javascript:window.location='${ctx}/basicprotocol/form?functionId=${cfg.functionId}'"> +
@@ -489,6 +492,8 @@ - + + +<%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp index 61e8d98bf..922925417 100644 --- a/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/ddosIpCfgList.jsp @@ -140,6 +140,7 @@ +
diff --git a/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp b/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp index 557ab6e57..346710bd6 100644 --- a/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp @@ -98,6 +98,9 @@ onClick="javascript:window.location='${ctx}/encryptedtunnelbehav/form?functionId=${cfg.functionId}'"> +
@@ -486,6 +489,8 @@ - + + +<%@include file="/WEB-INF/include/excel/importModal.jsp" %> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/fileDigestList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/fileDigestList.jsp index 0c2cd9f55..29a367c92 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/fileDigestList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/fileDigestList.jsp @@ -166,6 +166,7 @@ +
diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp index 2fccc4e25..04d0156d4 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/p2pList.jsp @@ -163,6 +163,7 @@ +
diff --git a/src/main/webapp/WEB-INF/views/cfg/intercept/interceptList.jsp b/src/main/webapp/WEB-INF/views/cfg/intercept/interceptList.jsp index c1794157e..f8b1ceb56 100644 --- a/src/main/webapp/WEB-INF/views/cfg/intercept/interceptList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/intercept/interceptList.jsp @@ -536,8 +536,7 @@
- - + <%@include file="/WEB-INF/include/excel/importModal.jsp" %> diff --git a/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp b/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp index 8de6113a9..79eb45c29 100644 --- a/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/other/bgpList.jsp @@ -170,6 +170,7 @@ +
diff --git a/src/main/webapp/WEB-INF/views/cfg/website/sslList.jsp b/src/main/webapp/WEB-INF/views/cfg/website/sslList.jsp index 6097bdc1a..479679950 100644 --- a/src/main/webapp/WEB-INF/views/cfg/website/sslList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/website/sslList.jsp @@ -167,6 +167,7 @@ +
diff --git a/src/main/webapp/static/global/scripts/common.js b/src/main/webapp/static/global/scripts/common.js index 8646b311a..a75c96988 100644 --- a/src/main/webapp/static/global/scripts/common.js +++ b/src/main/webapp/static/global/scripts/common.js @@ -438,8 +438,10 @@ $(function(){ }); //去掉首尾空格 $("input,textarea").on("blur",function(){ - var val=$(this).val(); - $(this).val(val.trim()); + if($(this).attr("type")!="file"){ + var val=$(this).val(); + $(this).val(val.trim()); + } }); /*var log_total=sessionStorage.getItem("log_total"); var log_time_start=sessionStorage.getItem("log_time_start"); @@ -1479,30 +1481,6 @@ var downLoadXLS=function(){ var openSelct=function(obj){ $(obj).parent().parent().find(".tree-multiselect").removeClass("hidden"); } -//导入配置 -var importCfg=function(){ - if($("#serviceId").val()==""){ - alert("请选择action"); - return ; - } - var fileName = $(".fileupload-preview", $("#importForm1")).text(); - var $error = $('.alert-error', $("#importForm1")); - if(fileName==""){ - - $("span",$error).html("请选择xls或者xlsx格式文件进行导入..."); - $error.removeClass("hide"); - $error.addClass("show"); - return false; - - }else if(fileName.lastIndexOf("\.")==-1||fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xls' &&fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xlsx'){ - $("span",$error).html("导入的文件后缀,必须为xls或者xlsx..."); - $error.removeClass("hide"); - $error.addClass("show"); - return false; - } - $("#import_modal").modal('hide');//导入文件隐藏 - $("#importForm1").submit(); -} var validateTagInputKeyword=function(){ var flag=true; $(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){ diff --git a/src/main/webapp/static/pages/scripts/importExcel.js b/src/main/webapp/static/pages/scripts/importExcel.js index b0c3c7aff..20a756a19 100644 --- a/src/main/webapp/static/pages/scripts/importExcel.js +++ b/src/main/webapp/static/pages/scripts/importExcel.js @@ -88,3 +88,27 @@ var ajaxBehaviour=function(val){ } }); } +//导入配置 +var importCfg=function(){ + if($("#serviceId").val()==""){ + alert("请选择action"); + return ; + } + var fileName = $(".fileupload-preview", $("#importForm1")).text(); + var $error = $('.alert-error', $("#importForm1")); + if(fileName==""){ + + $("span",$error).html("请选择xls或者xlsx格式文件进行导入..."); + $error.removeClass("hide"); + $error.addClass("show"); + return false; + + }else if(fileName.lastIndexOf("\.")==-1||fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xls' &&fileName.substring(fileName.lastIndexOf("\.")+1).toLowerCase()!='xlsx'){ + $("span",$error).html("导入的文件后缀,必须为xls或者xlsx..."); + $error.removeClass("hide"); + $error.addClass("show"); + return false; + } + $("#import_modal").modal('hide');//导入文件隐藏 + $("#importForm1").submit(); +} \ No newline at end of file