Merge branch 'develop' of http://192.168.10.125/k18_web/NFS.git into
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:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
*/
|
||||
package com.nis.domain.configuration.template;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import com.nis.util.excel.ExcelField;
|
||||
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
/*}*/
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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配置导出
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
// 设置区域运营商信息
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
@@ -537,4 +537,4 @@ cert_file_path=/home/cert/
|
||||
#证书校验工具名称
|
||||
cert_validate_file=x509
|
||||
#证书校验成功的关键信息
|
||||
cert_validate_success_info=Successful
|
||||
cert_validate_success_info=Successful
|
||||
|
||||
BIN
src/main/resources/shell/x509
Normal file
BIN
src/main/resources/shell/x509
Normal file
Binary file not shown.
@@ -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';
|
||||
@@ -117,7 +117,6 @@ $(function(){
|
||||
</div>
|
||||
<c:forEach items="${regionList}" var="region">
|
||||
<c:if test="${_cfg.functionId eq region.functionId}">
|
||||
<input type="hidden" name="cfgType" value="${region.configRegionValue}">
|
||||
<input type="hidden" name="cfgType" value="${region.configRegionValue}">
|
||||
<input type="hidden" name="cfgRegionCode" serviceType="${region.configServiceType }" value="${region.configRegionCode }">
|
||||
<input type="hidden" name="configMultiKeywords" value="${region.configMultiKeywords }">
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
<shiro:hasPermission name="avVoip:config">
|
||||
<sys:delRow url="${ctx}/ntc/av/contUrlForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/av/updateAvContUrlValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/av/exportStream?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/av/contUrlList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<%-- <sys:delRow url="${ctx}/ntc/av/voipExport?functionId=${cfg.functionId }" id="contentTable" label="export" maxRow="${page.maxExportSize }"></sys:delRow> --%>
|
||||
<shiro:hasPermission name="avVoip:confirm">
|
||||
|
||||
@@ -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("<label id='level-error' class='error' for='srcFile'><spring:message code='required'></spring:message></label>");
|
||||
return false;
|
||||
}/* else if((sampleUrl==null || sampleUrl=="") && (sampleFile==null || sampleFile=="")){
|
||||
$("div[for='sampleFile']").append("<label id='level-error' class='error' for='sampleFile'><spring:message code='required'></spring:message></label>");
|
||||
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("<label id='level-error' class='error' for='srcFile'><spring:message code='keyframe_pic_required'></spring:message></label>");
|
||||
return false;
|
||||
}else if(srcFile!=null && srcFile!=""){//选择视频文件
|
||||
if(srcPath==null || srcPath==""){//单位选择关键帧图片
|
||||
$("div[for='srcFileInfo']").append("<label id='level-error' class='error' for='srcFile'><spring:message code='keyframe_pic_required'></spring:message></label>");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if((srcUrl==null||srcUrl=="") && (srcFile==null || srcFile=="")){
|
||||
$("div[for='srcFileInfo']").append("<label id='level-error' class='error' for='srcFile'><spring:message code='required'></spring:message></label>");
|
||||
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(){
|
||||
<form id="cfgFrom" action="${ctx}/ntc/av/sample/saveFileSample" enctype="multipart/form-data" method="post" class="form-horizontal">
|
||||
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
|
||||
<input type="hidden" name="compileId" value="${_cfg.compileId}">
|
||||
<input type="hidden" name="functionId" value="${_cfg.functionId}">
|
||||
<input type="hidden" name="functionId" id="functionId" value="${_cfg.functionId}">
|
||||
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
|
||||
<input type="hidden" name="picPath" id="picPath" value="">
|
||||
<!-- 配置域类型 -->
|
||||
<c:forEach items="${regionList}" var="region">
|
||||
<c:if test="${_cfg.functionId eq region.functionId}">
|
||||
@@ -176,18 +239,42 @@ function hiddenlevel(){
|
||||
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="src_file"/></label>
|
||||
<div class="col-md-6">
|
||||
<%-- <input class="form-control required" type="text" name="srcUrl" value="${_cfg.srcUrl }"> --%>
|
||||
<input id="srcFile" name="srcFile" type="file" style="width: 330px;display:none" />
|
||||
<div class="input-group">
|
||||
<input id="srcFileInfo" name="srcFileInfo" readonly="readonly" data-msg-required=""
|
||||
placeholder="<spring:message code="select_file"/>" class="required form-control" style=" background-color:transparent"
|
||||
aria-required="true" type="text" value="${_cfg.srcUrl }">
|
||||
|
||||
<div class="input-group-btn">
|
||||
<a id="uploadSrc" class="btn btn-default btn-search" href="javascript:" style=""><i class="fa fa-search"></i></a>
|
||||
</div>
|
||||
<%-- <span id="srcFileInfo" style="margin-top:20px;margin-left:10px;">${_cfg.srcUrl }</span> --%>
|
||||
</div>
|
||||
<input id="srcUrl" name="srcUrl" type="hidden" value="${_cfg.srcUrl }"/>
|
||||
<input id="srcFile" type="file" name="srcFile" style="width: 330px;display:none" />
|
||||
<c:set var="videoToPicture" value="${fns:getDictLabel('VIDEO_TO_PICTURE', _cfg.functionId, 'false')}" />
|
||||
<input type="hidden" name="videoToPicture" id="videoToPicture" value="${videoToPicture }">
|
||||
<c:choose>
|
||||
|
||||
<c:when test="${videoToPicture}">
|
||||
<input id="srcPath" name="srcPath" type="hidden" style="width: 330px;" />
|
||||
<div class="input-group">
|
||||
<input id="srcFileInfo" name="srcFileInfo" readonly="readonly" data-msg-required=""
|
||||
placeholder="<spring:message code="select_file"/>" class="required form-control" style=" background-color:transparent"
|
||||
aria-required="true" type="text" value="${_cfg.srcUrl }">
|
||||
|
||||
<div class="input-group-btn">
|
||||
<a id="uploadSrc" class="btn btn-default btn-search " href="javascript:" style=""><i class="fa fa-search"></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<input id="srcUrl" name="srcUrl" type="hidden" value="${_cfg.srcUrl }"/>
|
||||
<button type="button" id="showPicture" class="btn btn-warning hidden ">
|
||||
<i class="fa btn-search"></i>
|
||||
<spring:message code="show"></spring:message></button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<div class="input-group">
|
||||
<input id="srcFileInfo" name="srcFileInfo" readonly="readonly" data-msg-required=""
|
||||
placeholder="<spring:message code="select_file"/>" class="required form-control" style=" background-color:transparent"
|
||||
aria-required="true" type="text" value="${_cfg.srcUrl }">
|
||||
|
||||
<div class="input-group-btn">
|
||||
<a id="uploadSrc" class="btn btn-default btn-search" href="javascript:" style=""><i class="fa fa-search"></i></a>
|
||||
</div>
|
||||
<%-- <span id="srcFileInfo" style="margin-top:20px;margin-left:10px;">${_cfg.srcUrl }</span> --%>
|
||||
</div>
|
||||
<input id="srcUrl" name="srcUrl" type="hidden" value="${_cfg.srcUrl }"/>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
</div>
|
||||
<div for="srcFileInfo"></div>
|
||||
</div>
|
||||
|
||||
@@ -129,6 +129,7 @@
|
||||
<shiro:hasPermission name="avFileSample:config">
|
||||
<sys:delRow url="${ctx}/ntc/av/sample/fileSampleForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/av/sample/updateAvFileSampleValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/av/exportYsp?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/av/sample/fileSampleList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="avFileSample:confirm">
|
||||
<div class="btn-group">
|
||||
|
||||
156
src/main/webapp/WEB-INF/views/cfg/av/videoPictureList.jsp
Normal file
156
src/main/webapp/WEB-INF/views/cfg/av/videoPictureList.jsp
Normal file
@@ -0,0 +1,156 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
<title><spring:message code="${cfgName}"></spring:message></title>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("#submitButton").on('click',function(){
|
||||
var selectPic = "";
|
||||
$("div[name='checkPic']").each(function(){
|
||||
if($(this).attr("ischecked")=="true")
|
||||
{
|
||||
selectPic += $(this).attr("value")+"|";
|
||||
}
|
||||
});
|
||||
if(selectPic==""){
|
||||
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
|
||||
return false;
|
||||
}else{
|
||||
$("#srcPath",parent.document).val(selectPic);
|
||||
//关闭此窗口
|
||||
window.parent.window.jBox.close();
|
||||
}
|
||||
|
||||
});
|
||||
$("div[name='checkPic']").on('click',function(){
|
||||
if($(this).attr("ischecked")=="true"){
|
||||
$(this).attr("ischecked","false");
|
||||
$(this).find(".icon-check").css("display","none");
|
||||
}else{
|
||||
$(this).attr("ischecked","true");
|
||||
$(this).find(".icon-check").css("display","block");
|
||||
}
|
||||
});
|
||||
$(".checkAll").on('click',function(){
|
||||
if($(this).hasClass("checkAll-cancel")){
|
||||
$(this).addClass("checkAll-check");
|
||||
$(this).removeClass("checkAll-cancel");
|
||||
$("div[name='checkPic']").attr("ischecked","true");
|
||||
$("div[name='checkPic']").find(".icon-check").css("display","block");
|
||||
}else{
|
||||
$(this).addClass("checkAll-cancel");
|
||||
$(this).removeClass("checkAll-check");
|
||||
$("div[name='checkPic']").attr("ischecked","false");
|
||||
$("div[name='checkPic']").find(".icon-check").css("display","none");
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
<style type="text/css">
|
||||
.selectImgDiv .item{width:150px;height:150px;border:solid thin #aaa;float:left;margin:10px;cursor:pointer;overflow:hidden}
|
||||
.selectImgDiv .item:hover{border:solid thin #09f}.selectImgDiv .item .img_show{width:100%;height:100%;overflow:hidden}
|
||||
.selectImgDiv .item .img_show img{width:100%;height:100%}
|
||||
.selectImgDiv .item:hover .img_show img{transform:scale(1.3);transition:all 1s ease 0s;-webkit-transform:scale(1.3);-webkit-transform:all 1s ease 0s}
|
||||
.selectImgDiv .item .img_title{height:30px;text-align:center;font-size:16px;line-height:30px;background-color:rgba(102,102,102,.6);position:relative;color:#fff;font-weight:700}
|
||||
.selectImgDiv .item:hover .img_title{top:-30px}
|
||||
.selectImgDiv .item .img_isCheck{position:relative;top:-168px;text-align:right}
|
||||
.selectImgDiv .item .img_isCheck i{font-size:30px;display:none;color:#fdfdfd;padding-top:3px;}
|
||||
.checkAll{font-size:30px;display:none;color:#6f3}
|
||||
/* @font-face{
|
||||
font-family:iconfont;
|
||||
src:url(../font/iconfont.eot?t=1495283771116);
|
||||
src:url(../font/iconfont.eot?t=1495283771116#iefix) format('embedded-opentype'),url(../font/iconfont.woff?t=1495283771116) format('woff'),url(../font/iconfont.ttf?t=1495283771116) format('truetype'),url(../font/iconfont.svg?t=1495283771116#iconfont) format('svg')
|
||||
} */
|
||||
.iconfont{
|
||||
background-color: #6f3;
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
float: right;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.icon-check:before{content:"\2714"}
|
||||
.checkAll-check:before{content:"\2611"}
|
||||
.checkAll-cancel:before{content:"\2610"}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="portlet">
|
||||
<div class="portlet-body">
|
||||
<div class="row" style="margin-top:10px">
|
||||
<input type="hidden" id="picFilePath" name="picFilePath" value="${picFilePath }"/>
|
||||
<div class="col-md-12">
|
||||
<div class="pull-right">
|
||||
<button type="button" id="submitButton" class="btn btn-warning" style="margin-right:10px">
|
||||
<i class="fa fa-plus"></i>
|
||||
<spring:message code="ok"></spring:message></button>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<i class="checkAll checkAll-cancel" style="display:block;font-style:normal;margin:-5px 8px 0px 0px"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="container" style="margin-top:30px">
|
||||
<%-- <table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" class="i-checks" id="checkAll"></th>
|
||||
<th><spring:message code="index"/></th>
|
||||
<th><spring:message code="thumbnail"/></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<c:forEach items="${fileList}" var="file" varStatus="status" step="1">
|
||||
<tr>
|
||||
<td><input type="checkbox" name="checkPic" ${file.checked } class="i-checks" id="${status.index+1}" value="${file.picName }"></td>
|
||||
<td>${status.index+1}</td>
|
||||
<td>
|
||||
<a href="${pageContext.request.contextPath}/${file.picUrl }" target="_blank">
|
||||
<img alt="" src="${pageContext.request.contextPath}/${file.picUrl }" width="100px" height="100px">
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table> --%>
|
||||
<div class="selectImgDiv" id="selectItemDiv">
|
||||
<c:forEach items="${fileList}" var="file" varStatus="status" step="1">
|
||||
<div class="item i-checks" name="checkPic" id="checkPic${status.index }" ischecked="${file.checked }" value="${file.picName }">
|
||||
<div class="img_show">
|
||||
<img alt="" src="${pageContext.request.contextPath}/${file.picUrl }" width="120px" height="120px">
|
||||
</div>
|
||||
<div class="img_title">
|
||||
${file.picName }
|
||||
</div>
|
||||
<div class="img_isCheck">
|
||||
<i class="iconfont icon-check" style="<c:if test='${file.checked }'>display:block</c:if>"></i>
|
||||
</div>
|
||||
</div>
|
||||
</c:forEach>
|
||||
</div>
|
||||
<%-- <c:forEach items="${fileList}" var="file" varStatus="status" step="1">
|
||||
|
||||
<input type="checkbox" name="checkPic" ${file.checked } class="i-checks" id="${status.index+1}" value="${file.picName }">
|
||||
<a href="${pageContext.request.contextPath}/${file.picUrl }" target="_blank">
|
||||
<img alt="" src="${pageContext.request.contextPath}/${file.picUrl }" width="120px" height="120px">
|
||||
</a>
|
||||
|
||||
<c:if test="${(status.index+1) mod 8 eq 0 }">
|
||||
<br><br>
|
||||
</c:if>
|
||||
</c:forEach> --%>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -189,6 +189,7 @@
|
||||
<shiro:hasPermission name="avVoip:config">
|
||||
<sys:delRow url="${ctx}/ntc/av/voipForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/av/updateAvVoipValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/av/exportVoip?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/av/voipList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<%-- <sys:delRow url="${ctx}/ntc/av/voipExport?functionId=${cfg.functionId }" id="contentTable" label="export" maxRow="${page.maxExportSize }"></sys:delRow> --%>
|
||||
<shiro:hasPermission name="avVoip:confirm">
|
||||
|
||||
@@ -101,6 +101,9 @@
|
||||
onClick="javascript:window.location='${ctx}/basicprotocol/form?functionId=${cfg.functionId}'">
|
||||
<i class="fa fa-plus"></i>
|
||||
<spring:message code="add"></spring:message></button>
|
||||
<button type="button" class="btn btn-primary import" >
|
||||
<i class="fa fa-plus"></i>
|
||||
<spring:message code="import"></spring:message></button>
|
||||
</shiro:hasPermission>
|
||||
</div>
|
||||
|
||||
@@ -489,6 +492,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<c:set var="importPath" value="/basicprotocol/list?functionId=${cfg.functionId}"/>
|
||||
<!-- 模板导入,start -->
|
||||
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
|
||||
</body>
|
||||
</html>
|
||||
@@ -140,6 +140,7 @@
|
||||
<shiro:hasPermission name="ddos:ip:config">
|
||||
<sys:delRow url="${ctx}/manipulation/ddos/form" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/manipulation/ddos/delete?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/manipulation/ddos/exportDdos?functionId=${cfg.functionId }" searchUrl="${ctx}/manipulation/ddos/list?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="ddos:ip:confirm">
|
||||
<div class="btn-group">
|
||||
|
||||
@@ -98,6 +98,9 @@
|
||||
onClick="javascript:window.location='${ctx}/encryptedtunnelbehav/form?functionId=${cfg.functionId}'">
|
||||
<i class="fa fa-plus"></i>
|
||||
<spring:message code="add"></spring:message></button>
|
||||
<button type="button" class="btn btn-primary import" >
|
||||
<i class="fa fa-plus"></i>
|
||||
<spring:message code="import"></spring:message></button>
|
||||
</shiro:hasPermission>
|
||||
</div>
|
||||
|
||||
@@ -486,6 +489,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<c:set var="importPath" value="/encryptedtunnelbehav/list?functionId=${cfg.functionId}"/>
|
||||
<!-- 模板导入,start -->
|
||||
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
|
||||
</body>
|
||||
</html>
|
||||
@@ -166,6 +166,7 @@
|
||||
<shiro:hasPermission name="fileTransfer:fileDigest:config">
|
||||
<sys:delRow url="${ctx}/ntc/fileTransfer/fileDigestForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/fileTransfer/updateFileDigestValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/fileTransfer/exportFile?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/fileTransfer/fileDigestList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="fileTransfer:fileDigest:confirm">
|
||||
<div class="btn-group">
|
||||
|
||||
@@ -163,6 +163,7 @@
|
||||
<shiro:hasPermission name="fileTransfer:p2p:config">
|
||||
<sys:delRow url="${ctx}/ntc/fileTransfer/p2pForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/fileTransfer/updateP2pCfgValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/fileTransfer/exportP2p?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/fileTransfer/p2pList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="fileTransfer:p2p:confirm">
|
||||
<div class="btn-group">
|
||||
|
||||
@@ -536,8 +536,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<c:set var="importPath" value="/proxy/intercept/${fn:toLowerCase(interceptType)}/list"/>
|
||||
<c:set var="functionId" value="${cfg.functionId}"/>
|
||||
<c:set var="importPath" value="/proxy/intercept/${fn:toLowerCase(interceptType)}/list?functionId=${cfg.functionId}"/>
|
||||
<!-- 模板导入,start -->
|
||||
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
|
||||
</body>
|
||||
|
||||
@@ -170,6 +170,7 @@
|
||||
<shiro:hasPermission name="other:bgp:config">
|
||||
<sys:delRow url="${ctx}/ntc/other/bgpForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/other/updateBgpCfgValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/other/exportbgp?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/other/bgpList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="other:bgp:confirm">
|
||||
<div class="btn-group">
|
||||
|
||||
@@ -167,6 +167,7 @@
|
||||
<shiro:hasPermission name="website:ssl:config">
|
||||
<sys:delRow url="${ctx}/ntc/website/sslForm" id="contentTable" label="update"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/website/updateSslCfgValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
|
||||
<sys:delRow url="${ctx}/ntc/website/exportSsl?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/website/sslLists?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow>
|
||||
</shiro:hasPermission>
|
||||
<shiro:hasPermission name="website:ssl:confirm">
|
||||
<div class="btn-group">
|
||||
|
||||
@@ -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(){
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user