develop

Conflicts:
	src/main/resources/messages/message_en.properties
	src/main/resources/messages/message_ru.properties
	src/main/resources/messages/message_zh_CN.properties
	src/main/resources/nis.properties
修复单个appHTTP界面cfgType多余问题
x509校验证书
字符串模板导出问题修复
This commit is contained in:
duandongmei
2018-10-20 13:46:41 +08:00
40 changed files with 1333 additions and 158 deletions

View File

@@ -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<AvFileSampleCfg> {
/**
@@ -10,9 +11,11 @@ public class AvFileSampleCfg extends BaseCfg<AvFileSampleCfg> {
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<AvFileSampleCfg> {
@SerializedName("dstFileMd5")
private String sampleMd5;
@Expose
@ExcelField(title="harm_level",sort=21)
private Integer level;
@Expose
@SerializedName("cfgId")

View File

@@ -42,24 +42,24 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
*/
@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<NtcSubscribeIdCfg> ntcSubscribeIdCfgList;
@@ -97,14 +97,14 @@ public class BaseIpCfg extends BaseCfg<BaseIpCfg> {
*/
@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

View File

@@ -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<FileDigestCfg> {
*/
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;

View File

@@ -8,7 +8,6 @@
*/
package com.nis.domain.configuration.template;
import com.google.gson.JsonObject;
import com.nis.util.excel.ExcelField;
/**

View File

@@ -282,6 +282,28 @@ public class DictUtils {
}
return regionDict;
}
/**
* 功能配置域字典,获取配置域信息
* @param dictId
* @return
*/
public static FunctionRegionDict getFunctionRegionDictByRegionCode(Integer functionId,Integer regionCode){
FunctionRegionDict regionDict=null;
List<FunctionRegionDict> allDictList = (List<FunctionRegionDict>)CacheUtils.get(Constants.CACHE_FUNCTION_REGION_DICT);
List<FunctionRegionDict> 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

View File

@@ -448,16 +448,16 @@ public class ExportExcel {
commentStr="";
List<SysDataDictionaryItem> 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<SysDataDictionaryItem> 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";
}
}

View File

@@ -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<BaseIpCfg> ipPortCfgs = new ArrayList<BaseIpCfg>();
List<CfgIndexInfo> cfgIndexInfos = new ArrayList<CfgIndexInfo>();
List<AppPolicyCfg> appPolicyCfgs = new ArrayList<AppPolicyCfg>();
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());

View File

@@ -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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<DdosIpCfg> pageInfo=new Page<DdosIpCfg>(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<DdosIpCfg> 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();
}
}

View File

@@ -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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<CfgIndexInfo> pageInfo=new Page<CfgIndexInfo>(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<CfgIndexInfo> 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<IpPortCfg> ipList=new ArrayList<IpPortCfg>();
List<NtcSubscribeIdCfg> subscribeInfoList=new ArrayList<NtcSubscribeIdCfg>();
List<BaseStringCfg> streamurlList=new ArrayList<BaseStringCfg>();
for (CfgIndexInfo cfg : page.getList()) {
Map<String, List> 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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<CfgIndexInfo> pageInfo=new Page<CfgIndexInfo>(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<CfgIndexInfo> page = avContentCfgService.findPage(new Page<CfgIndexInfo>(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<IpPortCfg> ipList=new ArrayList<IpPortCfg>();
List<NtcSubscribeIdCfg> subscribeInfoList=new ArrayList<NtcSubscribeIdCfg>();
List<BaseStringCfg> countlList=new ArrayList<BaseStringCfg>();
for (CfgIndexInfo cfg : page.getList()) {
Map<String, List> 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();
}
}

View File

@@ -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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<AvFileSampleCfg> pageInfo=new Page<AvFileSampleCfg>(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<AvFileSampleCfg> 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<File> files = FileUtils.listFiles(new File(picFilePath), null, true);
List<Map<String,String>> 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";
}
}

View File

@@ -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<CfgIndexInfo> 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<IpPortCfg> ipList=new ArrayList<IpPortCfg>();
List<NtcSubscribeIdCfg> subscribeInfoList=new ArrayList<NtcSubscribeIdCfg>();
List<ComplexkeywordCfg> regionInfoList=new ArrayList<ComplexkeywordCfg>();
List<BaseStringCfg> asInfoList=new ArrayList<BaseStringCfg>();
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);
/*}*/

View File

@@ -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<CfgIndexInfo> 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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<CfgIndexInfo> pageInfo=new Page<CfgIndexInfo>(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<CfgIndexInfo> 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<IpPortCfg> ipList=new ArrayList<IpPortCfg>();
List<NtcSubscribeIdCfg> subscribeInfoList=new ArrayList<NtcSubscribeIdCfg>();
List<BaseStringCfg> hashList=new ArrayList<BaseStringCfg>();
List<BaseStringCfg> keywordList=new ArrayList<BaseStringCfg>();
for (CfgIndexInfo cfg : page.getList()) {
Map<String, List> 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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
Page<FileDigestCfg> pageInfo=new Page<FileDigestCfg>(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<FileDigestCfg> 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();
}
}

View File

@@ -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配置导出

View File

@@ -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<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
List<FunctionRegionDict> regionList = DictUtils.getFunctionRegionDictList(entity.getFunctionId());
/*//导出选中记录
if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
Page<CfgIndexInfo> pageInfo=new Page<CfgIndexInfo>(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<CfgIndexInfo> 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<BaseStringCfg> sslSniList = new ArrayList<>();
List<BaseStringCfg> sslSnaList = new ArrayList<>();
List<BaseStringCfg> sslCnList = new ArrayList<>();
List<IpPortCfg> ipPortList = new ArrayList<>();
List<NtcSubscribeIdCfg> subscribeIdList = new ArrayList<>();
for (CfgIndexInfo cfg : page.getList()) {
Map<String, List> 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();
}
}

View File

@@ -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<String, Object> resultMap1=avCfgService.execShell("","chmod","+x",filePath);
//验证文件
logger.info(x509Shell+" "+validateType+" "+filePath);
Map<String, Object> 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

View File

@@ -306,7 +306,12 @@ public class AppCfgService extends BaseService {
}
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void savePolicyList(List<AppPolicyCfg> appPolicyCfgs){
for (AppPolicyCfg appPolicyCfg : appPolicyCfgs) {
appCfgDao.insertAppPolicyCfg(appPolicyCfg);
}
}
@Transactional(readOnly = false, rollbackFor = RuntimeException.class)
public void saveOrUpdateAppIpCfg(AppIpCfg entity) throws Exception {
// 设置区域运营商信息

View File

@@ -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<String, List> exportvoip(CfgIndexInfo entity){
Map<String, List> dataMap=new HashMap<String, List>();
List<NtcSubscribeIdCfg> ntcSubscribeList=getSubscribeIdCfgList(entity);
List<IpPortCfg> ipPortList = avContentCfgDao.getIpPortList(entity);
List<AvVoipAccountCfg> 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<NtcSubscribeIdCfg> ntcSubscribeList=getSubscribeIdCfgList(cfg);
@@ -138,6 +154,17 @@ public class AvContentCfgService extends BaseService{
return cfg;
}
public Map<String, List> exportstream(CfgIndexInfo entity){
Map<String, List> dataMap=new HashMap<String, List>();
List<NtcSubscribeIdCfg> ntcSubscribeList=getSubscribeIdCfgList(entity);
List<AvContUrlCfg> avContUrlList=avContentCfgDao.getAvContUrlList(entity);
List<IpPortCfg> 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);

View File

@@ -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<BgpCfgDao,CfgIndexInfo> {
return page;
}
public CfgIndexInfo exportbgp(CfgIndexInfo entity){
List<IpPortCfg> ipPortList = bgpCfgDao.getIpPortList(entity);
NtcSubscribeIdCfg subscribeId = new NtcSubscribeIdCfg();
subscribeId.setCompileId(entity.getCompileId());
subscribeId.setIsValid(entity.getIsValid());
List<NtcSubscribeIdCfg> ntcSubscribeIdCfgList = stringCfgDao.findSubscribeIdCfgList(subscribeId);
List<NtcBgpAsCfg> ntcBgpAsCfgList = bgpCfgDao.getNtcBgpAsList(entity);
entity.setIpPortList(ipPortList);
entity.setNtcSubscribeIdCfgList(ntcSubscribeIdCfgList);
entity.setNtcBgpAsCfgList(ntcBgpAsCfgList);
return entity;
}
/**
* 保存配置
* @param entity

View File

@@ -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<FileTransferCfgDao,CfgIn
return entity;
}
public Map<String, List> exportp2p(CfgIndexInfo entity){
Map<String, List> dataMap=new HashMap<String, List>();
List<IpPortCfg> 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<P2pHashCfg> hashList = fileTransferCfgDao.getP2pHashList(entity);
List<P2pKeywordCfg> keywordList = fileTransferCfgDao.getP2pKeywordList(entity);
List<NtcSubscribeIdCfg> 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

View File

@@ -113,6 +113,27 @@ public class WebsiteCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo> {
}
public Map<String, List> exportssl(CfgIndexInfo entity){
Map<String, List> dataMap=new HashMap<String, List>();
List<IpPortCfg> ipPortList = websiteCfgDao.getIpPortList(entity);
List<NtcSubscribeIdCfg> subscribeIdList = stringCfgDao.findSubscribeIdCfgListByCfgIndexInfo(entity);
entity.setCfgType("NTC_SSL_SNI");
List<BaseStringCfg> sslSniList = websiteCfgDao.getSslKewordList(entity);
entity.setCfgType("NTC_SSL_SAN");
List<BaseStringCfg> sslSanList = websiteCfgDao.getSslKewordList(entity);
entity.setCfgType("NTC_SSL_CN");
List<BaseStringCfg> 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<IpPortCfg> ipPortList = websiteCfgDao.getIpPortList(entity);