Merge branch 'develop' of http://10.0.6.99/gwall/gwall.git into develop

This commit is contained in:
duandongmei
2018-07-27 15:02:27 +08:00
20 changed files with 462 additions and 79 deletions

View File

@@ -0,0 +1,2 @@
update function_region_dict t set t.config_region_value=insert(t.config_region_value,POSITION('vedio' in t.config_region_value),5,'video') where t.config_region_value like '%vedio%';
update sys_menu s set s.`code`=insert(s.`code`,POSITION('vedio' in s.`code`),5,'video') where s.`code` like '%vedio%';

View File

@@ -6,7 +6,7 @@
*@date 2018年2月5日 下午5:26:02
*@version 版本号
*/
package com.nis.domain.configuration;
package com.nis.domain.configuration.template;
import com.nis.util.excel.ExcelField;

View File

@@ -0,0 +1,75 @@
package com.nis.domain.configuration.template;
import com.nis.util.excel.ExcelField;
/**
* wx 将部分字段的标题改变,或者不需要的字段隐藏
* 隐藏方法对于不需要的字段或者方法Override该字段方法但是@ExcelField注解不需要加上了
* @author dell
*
*/
public class IpMultiplexPolicyTemplate extends IpCfgTemplate {
@Override
@ExcelField(title="IP",align=2,sort=3)
public String getSrcIpAddress() {
return super.getSrcIpAddress();
}
@ExcelField(title="port",align=2,sort=6)
@Override
public String getSrcPort() {
// TODO Auto-generated method stub
return super.getSrcPort();
}
@Override
@ExcelField(title="group_name",align=2,sort=75)
public Integer getDnsStrategyId() {
// TODO Auto-generated method stub
return super.getDnsStrategyId();
}
@Override
public Integer getRatelimit() {
// TODO Auto-generated method stub
return super.getRatelimit();
}
@Override
public String getDestPort() {
// TODO Auto-generated method stub
return super.getDestPort();
}
@Override
public String getDestIpAddress() {
// TODO Auto-generated method stub
return super.getDestIpAddress();
}
public String getUserRegion1() {
// TODO Auto-generated method stub
return super.getUserRegion1();
}
@Override
public String getUserRegion2() {
// TODO Auto-generated method stub
return super.getUserRegion2();
}
@Override
public String getUserRegion3() {
// TODO Auto-generated method stub
return super.getUserRegion3();
}
@Override
public String getUserRegion4() {
// TODO Auto-generated method stub
return super.getUserRegion4();
}
@Override
public String getUserRegion5() {
// TODO Auto-generated method stub
return super.getUserRegion5();
}
}

View File

@@ -663,10 +663,10 @@ public class MaatCfg implements Serializable {
this.requestId = requestId;
}
public void initDefaultValue() {
this.doLog=2;
this.doBlackList=1;
this.configPercent=100;
this.configOption=1;
this.doLog=Constants.MAAT_CFG_DOLOG_DEFAULT;
this.doBlackList=Constants.MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT;
this.configPercent=Constants.MAAT_CFG_DOLOG_CONFIGPERCENT_DEFAULT;
this.configOption=Constants.MAAT_CFG_DOLOG_CONFIGOPTION_DEFAULT;
this.startTime=new Date();
this.endTime=DateUtils.addYears(this.startTime, 2099-Integer.parseInt(DateUtils.getYear()));
this.fatherCfgId=0;

View File

@@ -8,7 +8,28 @@ import com.google.gson.GsonBuilder;
public final class Constants {
/**
*
* MaatConfig 默认值
*/
public static Integer MAAT_CFG_DOLOG_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_default", 1);
public static Integer MAAT_CFG_DOLOG_DOBLACKLIST_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_doblacklist_default", 1);
public static Integer MAAT_CFG_DOLOG_CONFIGPERCENT_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_configpercent_default", 100);
public static Integer MAAT_CFG_DOLOG_CONFIGOPTION_DEFAULT=Configurations.getIntProperty("maat_cfg_dolog_configoption_default", 1);
/**
* iP默认值
*/
public static String IPV4_DEFAULT_IP_VALUE=Configurations.getStringProperty("ipv4_default_ip_value", "0.0.0.0");
public static String IPV6_DEFAULT_IP_VALUE=Configurations.getStringProperty("ipv4_default_ip_value", "::");
public static String IPV4_DEFAULT_IP_SUBNET_VALUE=Configurations.getStringProperty("ipv4_default_ip_subnet_value", "0.0.0.0/32");
public static String IPV6_DEFAULT_IP_SUBNET_VALUE=Configurations.getStringProperty("ipv6_default_ip_subnet_value", "::/64");
public static String IPV4_DEFAULT_IP_RANGE_VALUE=Configurations.getStringProperty("ipv4_default_ip_range_value", "0.0.0.0-0.0.0.0");
public static String IPV6_DEFAULT_IP_RANGE_VALUE=Configurations.getStringProperty("ipv6_default_ip_range_value", "::-::");
/**
* port默认值
*/
public static String PORT_DEFAULT=Configurations.getStringProperty("port_default", "0");
public static String PORT_MASK_DEFAULT=Configurations.getStringProperty("port_mask_default", "0/65535");
/**
*特定服务类型
*/
public static String SPECIFIC_SERVICE_CFG_TYPE_APP=Configurations.getStringProperty("specific_service_cfg_type_app", "social_app");
public static String SPECIFIC_SERVICE_CFG_TYPE_ENCRYPTED_TUNNEL_BEHAVIOR=Configurations.getStringProperty("specific_service_cfg_type_encrypted_tunnel_behavior", "encrypted_tunnel_behavior");
@@ -470,17 +491,17 @@ public final class Constants {
//YSP文件特征配置相关参数用于调用外部程序生成特征文件时使用
public static final String AV_FILE_PATH = Configurations.getStringProperty("av_file_path", "/home/ysp/");
public static final String AV_SAMPLE_AUDIO_REGION = Configurations.getStringProperty("av_sample_audio_region", "av_sample_audio");
public static final String AV_SAMPLE_VEDIO_REGION = Configurations.getStringProperty("av_sample_vedio_region", "av_sample_vedio");
public static final String AV_SAMPLE_VIDEO_REGION = Configurations.getStringProperty("av_sample_video_region", "av_sample_video");
public static final String AV_SAMPLE_PICTURE_REGION = Configurations.getStringProperty("av_sample_picture_region", "av_sample_picture");
public static final String AV_SAMPLE_VOIP_REGION = Configurations.getStringProperty("av_sample_voip_region", "av_sample_voip");
public static final String AUDIO_SAMPLE_CREATE_PROC = Configurations.getStringProperty("audio_sample_create_proc", "./audio_convert_proc");
public static final String VEDIO_SAMPLE_CREATE_PROC = Configurations.getStringProperty("vedio_sample_create_proc", "./vedio_convert_proc");
public static final String VIDEO_SAMPLE_CREATE_PROC = Configurations.getStringProperty("video_sample_create_proc", "./video_convert_proc");
public static final String PICTURE_SAMPLE_CREATE_PROC = Configurations.getStringProperty("picture_sample_create_proc", "./picture_convert_proc");
public static final boolean AUDIO_SAMPLE_PROC_PARAM_IS_QUOTATION = Configurations.getBooleanProperty("audio_sample_proc_param_is_quotation", true);
public static final boolean VEDIO_SAMPLE_PROC_PARAM_IS_QUOTATION = Configurations.getBooleanProperty("vedio_sample_proc_param_is_quotation", true);
public static final boolean VIDEO_SAMPLE_PROC_PARAM_IS_QUOTATION = Configurations.getBooleanProperty("video_sample_proc_param_is_quotation", true);
public static final boolean PICTURE_SAMPLE_PROC_PARAM_IS_QUOTATION = Configurations.getBooleanProperty("picture_sample_proc_param_is_quotation", true);
public static final boolean AUDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION = Configurations.getBooleanProperty("audio_sample_proc_param_is_translation", false);
public static final boolean VEDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION = Configurations.getBooleanProperty("vedio_sample_proc_param_is_translation", false);
public static final boolean VIDEO_SAMPLE_PROC_PARAM_IS_TRANSLATION = Configurations.getBooleanProperty("video_sample_proc_param_is_translation", false);
public static final boolean PICTURE_SAMPLE_PROC_PARAM_IS_TRANSLATION = Configurations.getBooleanProperty("picture_sample_proc_param_is_translation", false);
//HTTP自定义域相关参数

View File

@@ -22,7 +22,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.derby.tools.sysinfo;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Comment;
@@ -45,7 +44,6 @@ import com.nis.util.DictUtils;
import com.nis.util.Encodes;
import com.nis.util.Reflections;
import com.nis.util.StringUtil;
import com.nis.util.excel.fieldtype.RoleListType;
/**
* 导出Excel文件导出“XLSX”格式支持大数据量导出 @see org.apache.poi.ss.SpreadsheetVersion
@@ -83,15 +81,31 @@ public class ExportExcel {
/**
* //递归获取cls实体对象及父级对象的属性
* wx:修改,子类覆盖父类的同名方法
* @param list
* @param cls
*/
public void getFields(List<Field> list,Class<?> cls) {
Field[] fields=cls.getDeclaredFields();
if(fields != null && fields.length > 0){
List<Field> tempList=new ArrayList<>();
for (Field field : fields) {
list.add(field);
if(list.size()==0) {
tempList.add(field);
}else {
boolean has=false;
for(Field checkF:list) {
if(checkF.getName().equals(field.getName())) {
has=true;
break;
}
}
if(!has) {
tempList.add(field);
}
}
}
list.addAll(tempList);
}
if(cls.getSuperclass() != null){
getFields(list,cls.getSuperclass());
@@ -105,9 +119,24 @@ public class ExportExcel {
public void getMethods(List<Method> list,Class<?> cls) {
Method[] methods=cls.getDeclaredMethods();
if(methods != null && methods.length > 0){
List<Method> tempList=new ArrayList<>();
for (Method method : methods) {
list.add(method);
if(list.size()==0) {
tempList.add(method);
}else {
boolean has=false;
for(Method checkM:list) {
if(checkM.getName().equals(method.getName())) {
has=true;
break;
}
}
if(!has) {
tempList.add(method);
}
}
}
list.addAll(tempList);
}
if(cls.getSuperclass() != null){
getMethods(list,cls.getSuperclass());
@@ -254,6 +283,9 @@ public class ExportExcel {
if(!StringUtil.isEmpty(ms)){
for (Method m : ms){
ExcelField ef = m.getAnnotation(ExcelField.class);
if(m.getName().equals("getSrcIpAddress")) {
System.out.println(ef.title());
}
if (ef != null && (ef.type()==0 || ef.type()==type)){
if (groups!=null && groups.length>0){
boolean inGroup = false;

View File

@@ -9,6 +9,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
@@ -211,7 +212,69 @@ public class ImportExcel {
}
return val;
}
/**
* //递归获取cls实体对象及父级对象的属性
* wx:修改,子类覆盖父类的同名方法
* @param list
* @param cls
*/
public void getFields(List<Field> list,Class<?> cls) {
Field[] fields=cls.getDeclaredFields();
if(fields != null && fields.length > 0){
List<Field> tempList=new ArrayList<>();
for (Field field : fields) {
if(list.size()==0) {
tempList.add(field);
}else {
boolean has=false;
for(Field checkF:list) {
if(checkF.getName().equals(field.getName())) {
has=true;
break;
}
}
if(!has) {
tempList.add(field);
}
}
}
list.addAll(tempList);
}
if(cls.getSuperclass() != null){
getFields(list,cls.getSuperclass());
}
}
/**
* //递归获取cls实体对象及父级对象的method
* @param list
* @param cls
*/
public void getMethods(List<Method> list,Class<?> cls) {
Method[] methods=cls.getDeclaredMethods();
if(methods != null && methods.length > 0){
List<Method> tempList=new ArrayList<>();
for (Method method : methods) {
if(list.size()==0) {
tempList.add(method);
}else {
boolean has=false;
for(Method checkM:list) {
if(checkM.getName().equals(method.getName())) {
has=true;
break;
}
}
if(!has) {
tempList.add(method);
}
}
}
list.addAll(tempList);
}
if(cls.getSuperclass() != null){
getMethods(list,cls.getSuperclass());
}
}
/**
* 获取导入数据列表
* @param cls 导入对象类型
@@ -220,7 +283,11 @@ public class ImportExcel {
public <E> List<E> getDataList(Class<E> cls, int... groups) throws InstantiationException, IllegalAccessException{
List<Object[]> annotationList = Lists.newArrayList();
// Get annotation field
Field[] fs = cls.getDeclaredFields();
// Field[] fs = cls.getDeclaredFields();
List<Field> fs=new ArrayList<Field>();
// Get annotation field
//递归获取cls实体对象及父级对象的属性
getFields(fs, cls);
for (Field f : fs){
ExcelField ef = f.getAnnotation(ExcelField.class);
if (ef != null && (ef.type()==0 || ef.type()==2)){
@@ -244,7 +311,11 @@ public class ImportExcel {
}
}
// Get annotation method
Method[] ms = cls.getDeclaredMethods();
// Method[] ms = cls.getDeclaredMethods();
List<Method> ms=new ArrayList<Method>();
// Get annotation method
//递归获取cls实体对象及父级对象的属性
getMethods(ms, cls);
for (Method m : ms){
ExcelField ef = m.getAnnotation(ExcelField.class);
if (ef != null && (ef.type()==0 || ef.type()==2)){

View File

@@ -32,6 +32,7 @@ import com.beust.jcommander.internal.Lists;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
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.AreaBean;
@@ -39,7 +40,7 @@ import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.ComplexStringCfgTemplate;
import com.nis.domain.configuration.IpCfgTemplate;
import com.nis.domain.configuration.template.IpCfgTemplate;
import com.nis.domain.configuration.RequestInfo;
import com.nis.domain.configuration.StringCfgTemplate;
import com.nis.domain.log.BaseLogEntity;
@@ -584,6 +585,38 @@ public class BaseController {
e.printStackTrace();
}
}
public void importCfgTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode,Class clazz){
Properties msgProp = getMsgProp();
try {
List<FunctionRegionDict> dictList = DictUtils.getFunctionRegionDictList(functionId);
for(FunctionRegionDict dict:dictList){
if(dict.getConfigRegionCode()==cfgRegionCode){
String fileName = dict.getConfigRegionValue()+".xlsx";
if(dict.getRegionType()==1){
List<IpCfgTemplate> list = Lists.newArrayList();
list.add((IpCfgTemplate)clazz.newInstance());
new ExportExcel(msgProp,null, clazz, 2).setDataList(msgProp,list,null).
write(request,response, fileName).dispose();
}else if(dict.getRegionType()==2){
List<StringCfgTemplate> list = Lists.newArrayList();
list.add(new StringCfgTemplate());
new ExportExcel(msgProp,null, clazz, 2).setDataList(msgProp,list,null).
write(request,response, fileName).dispose();
}else if(dict.getRegionType()==3){
List<ComplexStringCfgTemplate> list = Lists.newArrayList();
list.add(new ComplexStringCfgTemplate());
new ExportExcel(msgProp,null, clazz, 2).setDataList(msgProp,list,null).
write(request,response, fileName).dispose();
}
}
}
} catch (Exception e) {
msgProp = null;
e.printStackTrace();
}
}
public void setLogAction(BaseLogEntity log) {
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
@@ -706,20 +739,67 @@ public class BaseController {
// ip_pattern check end
//client_ip check start
String srcIp=value.getSrcIpAddress();
String _msg=checkIP(prop,prop.getProperty("client_ip"),srcIp,ipTypeString,ipPatternString);
String _msg="";
if("ipmulitiplex".equals(specialItem)) {
_msg=checkIP(prop,prop.getProperty("IP"),srcIp,ipTypeString,ipPatternString);
}else {
_msg=checkIP(prop,prop.getProperty("client_ip"),srcIp,ipTypeString,ipPatternString);
}
if(StringUtils.isNotBlank(_msg)){
errInfo.append(_msg);
}
//client_ip check end
//server_ip check start
String destIp=value.getDestIpAddress();
if(srcIp.equals(destIp)){
String info=String.format(prop.getProperty("are_the_same"),prop.getProperty("client_ip"),prop.getProperty("server_ip"));
errInfo.append(info+";");
}
_msg=checkIP(prop,prop.getProperty("server_ip"),destIp,ipTypeString,ipPatternString);
if(StringUtils.isNotBlank(_msg)){
errInfo.append(_msg);
if("ipmulitiplex".equals(specialItem)) {//set 默认值
if(ipPattern!=null&&ipType!=null) {
if("ip_subnet".equals(ipPatternString)) {
if("ipv4".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV4_DEFAULT_IP_SUBNET_VALUE);
}else if("ipv6".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV6_DEFAULT_IP_SUBNET_VALUE);
}else if("4over6".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV6_DEFAULT_IP_SUBNET_VALUE);
}else if("6over4".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV4_DEFAULT_IP_SUBNET_VALUE);
}else if("all".equals(ipTypeString)) {
}
}else if("ip_range".equals(ipPatternString)) {
if("ipv4".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV4_DEFAULT_IP_RANGE_VALUE);
}else if("ipv6".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV6_DEFAULT_IP_RANGE_VALUE);
}else if("4over6".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV6_DEFAULT_IP_RANGE_VALUE);
}else if("6over4".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV4_DEFAULT_IP_RANGE_VALUE);
}else if("all".equals(ipTypeString)) {
}
}else if("ip".equals(ipPatternString)) {
if("ipv4".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV4_DEFAULT_IP_VALUE);
}else if("ipv6".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV6_DEFAULT_IP_VALUE);
}else if("4over6".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV6_DEFAULT_IP_VALUE);
}else if("6over4".equals(ipTypeString)) {
value.setDestIpAddress(Constants.IPV4_DEFAULT_IP_VALUE);
}else if("all".equals(ipTypeString)) {
}
}
}
}else {
if(srcIp.equals(destIp)){
String info=String.format(prop.getProperty("are_the_same"),prop.getProperty("client_ip"),prop.getProperty("server_ip"));
errInfo.append(info+";");
}
_msg=checkIP(prop,prop.getProperty("server_ip"),destIp,ipTypeString,ipPatternString);
if(StringUtils.isNotBlank(_msg)){
errInfo.append(_msg);
}
}
//server_ip check end
//port_pattern check start
@@ -743,14 +823,29 @@ public class BaseController {
//port_pattern check end
//src_port check start
String srcPort=value.getSrcPort();
_msg=checkPort(prop,prop.getProperty("client_port"), srcPort, portPatternString);
if("ipmulitiplex".equals(specialItem)) {
_msg=checkPort(prop,prop.getProperty("port"), srcPort, portPatternString);
}else {
_msg=checkPort(prop,prop.getProperty("client_port"), srcPort, portPatternString);
}
if(StringUtils.isNotBlank(_msg)){
errInfo.append(_msg);
}
//src_port check end
//dest_port check start
String destPort=value.getDestPort();
_msg=checkPort(prop,prop.getProperty("server_port"), destPort, portPatternString);
if("ipmulitiplex".equals(specialItem)) {//set 默认值
if(portPattern!=null) {
if("port_mask".equals(portPatternString)) {
value.setDestPort(Constants.PORT_MASK_DEFAULT);
}else if("port".equals(portPatternString)) {
value.setDestPort(Constants.PORT_DEFAULT);
}
}
}else {
_msg=checkPort(prop,prop.getProperty("server_port"), destPort, portPatternString);
}
if(StringUtils.isNotBlank(_msg)){
errInfo.append(_msg);
}
@@ -899,6 +994,46 @@ public class BaseController {
errInfo.append(String.format(prop.getProperty("num_split_by_comma"), prop.getProperty("label"))+";");
}
}
//group and ir_type check start
if("ipmulitiplex".equals(specialItem)) {
List<SysDataDictionaryItem> irTypeList = DictUtils.getDictList("IR_TYPE");
Integer irType= value.getIrType();
if(irType==null) {
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("ir_type"))+";");
}else {
boolean has=false;
for(SysDataDictionaryItem irTypeItem:irTypeList){
if(Integer.parseInt(irTypeItem.getItemCode())==protocol.intValue()){
has=true;
break;
}
}
if(!has){
errInfo.append(String.format(prop.getProperty("is_incorrect"), prop.getProperty("ir_type"))+";");
}
}
Integer dnsStrategyId=value.getDnsStrategyId();
if(dnsStrategyId==null) {
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("group_name"))+";");
}else {
PolicyGroupInfo group=policyGroupInfoService.getById(dnsStrategyId.intValue());
if(group==null) {
errInfo.append(String.format(prop.getProperty("id_not_exists"),dnsStrategyId, prop.getProperty("group_name"))+";");
}else if(group.getIsValid()==Constants.VALID_DEL||group.getIsValid()==Constants.VALID_NO) {
errInfo.append(String.format(prop.getProperty("id_not_valid"),dnsStrategyId, prop.getProperty("group_name"))+";");
}
}
}
if("ipratelimit".equals(specialItem)) {
Integer ratelimit=value.getRatelimit();
if(ratelimit==null) {
errInfo.append(String.format(prop.getProperty("can_not_null"), prop.getProperty("ratelimit"))+";");
}else {
if(ratelimit.intValue()<0||ratelimit.intValue()>100) {
errInfo.append(prop.getProperty("ratelimit_limit")+";");
}
}
}
//attribute check end
if(StringUtils.isNotBlank(errInfo.toString())){
msg.append(lineStart).append(errInfo);
@@ -906,6 +1041,7 @@ public class BaseController {
msg.append("<br/>");
}
}
//group and ir_type check end
line++;
}
if(StringUtils.isNotBlank(msg.toString())){

View File

@@ -28,7 +28,7 @@ import com.nis.domain.Page;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpCfgTemplate;
import com.nis.domain.configuration.template.IpCfgTemplate;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants;
@@ -240,10 +240,42 @@ public class CommonController extends BaseController {
e.printStackTrace();
}
}
public void _importIp(String cfgName,RedirectAttributes redirectAttributes,MultipartFile file,IpPortCfg ipCfg,Class clazz) {
redirectAttributes.addAttribute("cfgName", cfgName);
try {
ImportExcel ei = new ImportExcel(file, 0, 0);
List<IpCfgTemplate> list = ei.getDataList(clazz);
this.checkIpCfg(ipCfg.getFunctionId(),list);
List<BaseIpCfg> ipList = new ArrayList<>();
Date date=new Date();
for(IpCfgTemplate cfg : list){
IpPortCfg ip = new IpPortCfg();
BeanUtils.copyProperties(ipCfg, ip);
BeanUtils.copyProperties(cfg, ip);
ip.setTableName(IpPortCfg.getTablename());
ip.setIsAreaEffective(0);
ip.setIsValid(Constants.VALID_NO);
ip.setIsAudit(Constants.AUDIT_NOT_YET);
ip.setCreatorId(ipCfg.getCurrentUser().getId());
ip.setCreateTime(date);
ip.setCompileId(ipCfgService.getCompileId());
ip.setDnsStrategyId((long)cfg.getDnsStrategyId().intValue());
ipList.add(ip);
}
ipCfgService.saveBatch(ipList, IpCfgDao.class);
} catch (Exception e) {
addMessage(redirectAttributes, e.getMessage());
e.printStackTrace();
}
}
public void _importFileTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode) {
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode);
}
public void _importFileTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode,Class clazz) {
this.importCfgTemplate(request, response, redirectAttributes, functionId, cfgRegionCode,clazz);
}
//ip配置导出
public void _exportIp(String columns,Model model,HttpServletRequest request,HttpServletResponse response,
IpPortCfg entity,String ids,RedirectAttributes redirectAttributes){

View File

@@ -27,6 +27,7 @@ import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.template.IpMultiplexPolicyTemplate;
import com.nis.util.DictUtils;
import com.nis.web.controller.configuration.CommonController;
@@ -93,7 +94,7 @@ public class IpMultiplexController extends CommonController {
@RequestMapping(value = "/import", method=RequestMethod.POST)
public String importIp(String cfgName,RedirectAttributes redirectAttributes,
@RequestParam("file") MultipartFile file,IpPortCfg cfg) {
this._importIp(cfgName,redirectAttributes, file,cfg);
this._importIp(cfgName,redirectAttributes, file,cfg,IpMultiplexPolicyTemplate.class);
redirectAttributes.addAttribute("urlPrefix","/manipulation/ipmulitiplex");
redirectAttributes.addAttribute("requiresPermissionPrefix","ip:mulitiplex");
return "redirect:" + adminPath +"/manipulation/ipmulitiplex/list?functionId="+cfg.getFunctionId();
@@ -102,7 +103,7 @@ public class IpMultiplexController extends CommonController {
@RequestMapping(value = "import/template")
public void importFileTemplate(HttpServletRequest request,HttpServletResponse response,
RedirectAttributes redirectAttributes,Integer functionId,Integer cfgRegionCode) {
this._importFileTemplate(request, response, redirectAttributes, functionId, cfgRegionCode);
this._importFileTemplate(request, response, redirectAttributes, functionId, cfgRegionCode,IpMultiplexPolicyTemplate.class);
}
//ip配置导出
@RequestMapping(value = "export")

View File

@@ -25,7 +25,7 @@ import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.DnsResStrategy;
import com.nis.domain.configuration.ComplexStringCfgTemplate;
import com.nis.domain.configuration.IpCfgTemplate;
import com.nis.domain.configuration.template.IpCfgTemplate;
import com.nis.domain.configuration.StringCfgTemplate;
import com.nis.domain.configuration.HttpBodyCfg;
import com.nis.domain.configuration.HttpReqHeadCfg;

View File

@@ -151,12 +151,12 @@ public class AvCfgService extends BaseService{
if(Constants.AUDIO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_VEDIO_REGION)){//视频样例配置
sampleCreatelProc = Constants.VEDIO_SAMPLE_CREATE_PROC;
if(Constants.VEDIO_SAMPLE_PROC_PARAM_IS_TRANSLATION){
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_VIDEO_REGION)){//视频样例配置
sampleCreatelProc = Constants.VIDEO_SAMPLE_CREATE_PROC;
if(Constants.VIDEO_SAMPLE_PROC_PARAM_IS_TRANSLATION){
param = StringEscapeUtils.escapeJava(param);
}
if(Constants.VEDIO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
if(Constants.VIDEO_SAMPLE_PROC_PARAM_IS_QUOTATION){//json参数是否需要前后单引号处理
param = "'"+param+"'";
}
}else if(entity.getCfgType().equals(Constants.AV_SAMPLE_PICTURE_REGION)){//图片样例配置

View File

@@ -541,11 +541,11 @@ av_voip_control=VoIP control
av_voip_ip_control=VoIP IP control
av_voip_account_control=VoIP account control
av_sample_audio_control=audio sample control
av_sample_vedio_control=vedio sample control
av_sample_video_control=video sample control
av_sample_picture_control=picture sample control
av_sample_voip_control=VoIP sample control
av_sample_audio_porn_control=audio porn sample control
av_sample_vedio_porn_control=vedio porn sample control
av_sample_video_porn_control=video porn sample control
av_sample_control=sample control
configure_statistics_info=Configure statistics info
harm_level=harm level
@@ -683,7 +683,7 @@ ip_intercept=ip intercept
domain_intercept=domain intercept
control_policy=control policy
domain_forward=domain forward
http_redirect=http redirect
http_redirect=HTTP redirect
http_req_replace=http request replace
http_res_replace=http response replace
replace_content=replace content
@@ -698,8 +698,8 @@ policy_group_manage=strateagy grouping management
ip_multiplex_policy=ip multiplex policy
target_ip_protect=target ip protect
ratelimit_config=ratelimit config
ip_ratelimit=ip ratelimit
domain_ratelimit=domain ratelimit
ip_ratelimit=IP speed limit
domain_ratelimit=Domain speed limit
ratelimit=ratelimit scale
ir_type=multiplex type
dns_strategy_id=dns strategy id
@@ -834,10 +834,7 @@ app_http_feature_monit=APP HTTP feature monitoring
app_domain_feature_monit=APP domain feature monitoring
app_byte_feature_monit=APP byte feature monitoring
proxy_domain_forward=Domain forward
ip_ratelimit=IP speed limit
domain_ratelimit=Domain speed limit
ip_complex_loop=IP complex
http_redirect=HTTP redirect
ddos_ip_drop=DDOS IP
ip_reuse_adress_pool_loop=IP reuse address pool
app_strategy_monit=APP strategy monitoring
@@ -855,4 +852,5 @@ src_ip_report=Domestic Source IP Report
dest_ip_report=Destination Country IP Report
isp_report=Isp Report
#=============about report===================
show_more=Show More
show_more=Show More
ratelimit_limit=Limit Rate must between 0 and 100

View File

@@ -397,7 +397,7 @@ login=\u767B\u5F55
owner_company=\u5F52\u5C5E\u516C\u53F8
company=\u516C\u53F8
owner_group=\u5F52\u5C5E\u90E8\u95E8
group=\u90E8\u95E8
group=\u6240\u5C5E\u7EC4
template=\u4E0B\u8F7D\u6A21\u677F
export=\u5BFC\u51FA
import=\u5BFC\u5165
@@ -561,11 +561,11 @@ av_voip_control=\u97F3\u89C6\u9891VoIP
av_voip_ip_control=VoIP IP
av_voip_account_control=VoIP\u8D26\u53F7
av_sample_audio_control=\u97F3\u9891\u6837\u4F8B
av_sample_vedio_control=\u89C6\u9891\u6837\u4F8B
av_sample_video_control=\u89C6\u9891\u6837\u4F8B
av_sample_picture_control=\u56FE\u7247\u6837\u4F8B
av_sample_voip_control=VoIP\u6837\u4F8B
av_sample_audio_porn_control=\u97F3\u9891\u573A\u666F\u6837\u4F8B
av_sample_vedio_porn_control=\u89C6\u9891\u573A\u666F\u6837\u4F8B
av_sample_video_porn_control=\u89C6\u9891\u573A\u666F\u6837\u4F8B
av_sample_control=\u97F3\u89C6\u9891\u6837\u4F8B
configure_statistics_info=\u914D\u7F6E\u7EDF\u8BA1\u4FE1\u606F
harm_level=\u5371\u5BB3\u7A0B\u5EA6
@@ -773,7 +773,6 @@ all_types=\u6240\u6709\u7C7B\u578B
group_type=\u5206\u7EC4\u7C7B\u578B
group_name=\u5206\u7EC4\u540D\u79F0
default_group=\u7F3A\u7701\u7EC4
group=\u6240\u5C5E\u7EC4
policy_group_manage=\u7B56\u7565\u5206\u7EC4\u7BA1\u7406
#===========policy_group_manage end =============
#=============about manipulation=========
@@ -828,11 +827,11 @@ not_number=%s\u5FC5\u987B\u4E3A\u6570\u5B57
#=============some validation===========
#=============region_value,config form title=================
av_sample_audio=\u97F3\u9891\u6837\u4F8B
av_sample_vedio=\u89C6\u9891\u6837\u4F8B
av_sample_video=\u89C6\u9891\u6837\u4F8B
av_sample_picture=\u56FE\u7247\u6837\u4F8B
av_sample_voip=VoIP\u6837\u4F8B
av_sample_audio_porn=\u97F3\u9891\u573A\u666F\u6837\u4F8B
av_sample_vedio_porn=\u89C6\u9891\u573A\u666F\u6837\u4F8B
av_sample_video_porn=\u89C6\u9891\u573A\u666F\u6837\u4F8B
WHITE_LIST_IP=IP\u767D\u540D\u5355
av_voip_ip=VoIP IP\u914D\u7F6E
NTC_HTTP_URL=URL\u914D\u7F6E
@@ -900,7 +899,6 @@ redirect_response_code=\u91CD\u5B9A\u5411\u5E94\u7B54\u7801
redirect_url=\u91CD\u5B9A\u5411URL
replace_zone=\u66FF\u6362\u533A\u57DF
replaced_content=\u88AB\u66FF\u6362\u5185\u5BB9
replace_content=\u66FF\u6362\u5185\u5BB9
http_req_uri=HTTP\u8BF7\u6C42URI
http_req_header=HTTP\u8BF7\u6C42\u5934
http_req_body=HTTP\u8BF7\u6C42\u5185\u5BB9
@@ -1039,4 +1037,5 @@ trend=\u8D8B\u52BF
traffic_website_list=\u7F51\u7AD9\u6D41\u91CF\u7EDF\u8BA1\u5217\u8868
traffic_website_type_chart=\u7F51\u7AD9\u5206\u7C7B\u6D41\u91CF\u7EDF\u8BA1\u56FE
website=\u7F51\u7AD9\u540D\u79F0
#===============dashboard end===================================
#===============dashboard end===================================
ratelimit_limit=\u9650\u901F\u6BD4\u4F8B\u5FC5\u987B\u4ECB\u4E8E0\u5230100#===============dashboard end===================================

View File

@@ -378,32 +378,32 @@ digest_single_file_max_size=10485760
#12M12582912
digest_total_file_max_size=12582912
#YSP文件保存路径
av_file_path=/home/ysp/
#av_file_path=D:\\ysp\\
#av_file_path=/home/ysp/
av_file_path=D:\\ysp\\
#YSP文件特征类型
av_sample_audio_region=av_sample_audio
av_sample_vedio_region=av_sample_vedio
av_sample_video_region=av_sample_video
av_sample_picture_region=av_sample_picture
av_sample_voip_region=av_sample_voip
#样例文件生成程序
audio_sample_create_proc=java -jar /home/sampleTest.jar
vedio_sample_create_proc=java -jar /home/sampleTest.jar
picture_sample_create_proc=java -jar /home/sampleTest.jar
audio_sample_proc_param_is_quotation=true
vedio_sample_proc_param_is_quotation=true
picture_sample_proc_param_is_quotation=true
audio_sample_proc_param_is_translation=false
vedio_sample_proc_param_is_translation=false
picture_sample_proc_param_is_translation=false
#audio_sample_create_proc=java -jar D:\\sampleTest.jar
#vedio_sample_create_proc=java -jar D:\\sampleTest.jar
#picture_sample_create_proc=java -jar D:\\sampleTest.jar
#audio_sample_proc_param_is_quotation=false
#vedio_sample_proc_param_is_quotation=false
#picture_sample_proc_param_is_quotation=false
#audio_sample_proc_param_is_translation=true
#vedio_sample_proc_param_is_translation=true
#picture_sample_proc_param_is_translation=true
#audio_sample_create_proc=java -jar /home/sampleTest.jar
#video_sample_create_proc=java -jar /home/sampleTest.jar
#picture_sample_create_proc=java -jar /home/sampleTest.jar
#audio_sample_proc_param_is_quotation=true
#video_sample_proc_param_is_quotation=true
#picture_sample_proc_param_is_quotation=true
#audio_sample_proc_param_is_translation=false
#video_sample_proc_param_is_translation=false
#picture_sample_proc_param_is_translation=false
audio_sample_create_proc=java -jar D:\\sampleTest.jar
video_sample_create_proc=java -jar D:\\sampleTest.jar
picture_sample_create_proc=java -jar D:\\sampleTest.jar
audio_sample_proc_param_is_quotation=false
video_sample_proc_param_is_quotation=false
picture_sample_proc_param_is_quotation=false
audio_sample_proc_param_is_translation=true
video_sample_proc_param_is_translation=true
picture_sample_proc_param_is_translation=true
#http自定义域相关参数
http_header_user_region_key=HTTP_HEADER
http_header_dict_module=HTTP_HEADER_DISTRICT
@@ -414,4 +414,18 @@ specific_service_cfg_type_app=social_app
specific_service_cfg_type_encrypted_tunnel_behavior=encrypted_tunnel_behavior
specific_service_cfg_type_basic_protocol=basic_protocol
#基础协议自定义域
proto_id_region=PROTO_ID
proto_id_region=PROTO_ID
#IP默认值
ipv4_default_ip_value=\:\:
ipv4_default_ip_subnet_value=0.0.0.0/32
ipv6_default_ip_subnet_value=::/64
ipv4_default_ip_range_value=0.0.0.0-0.0.0.0
ipv6_default_ip_range_value=::-::
#端口默认值
port_default=0
port_mask_default=0/65535
#MAAT CFG 一些默认值
maat_cfg_dolog_default=1
maat_cfg_dolog_doblacklist_default=1
maat_cfg_dolog_configpercent_default=100
maat_cfg_dolog_configoption_default=1

View File

@@ -0,0 +1,2 @@
update function_region_dict t set t.config_region_value=insert(t.config_region_value,POSITION('vedio' in t.config_region_value),5,'video') where t.config_region_value like '%vedio%';
update sys_menu s set s.`code`=insert(s.`code`,POSITION('vedio' in s.`code`),5,'video') where s.`code` like '%vedio%';

View File

@@ -38,7 +38,7 @@ $(document).ready(function(){
<div class="page-content">
<h3 class="page-title">
<spring:message code="av_sample_vedio_porn_control"/>
<spring:message code="av_sample_video_porn_control"/>
<small><spring:message code="date_list"/></small>
</h3>

View File

@@ -38,7 +38,7 @@ $(document).ready(function(){
<div class="page-content">
<h3 class="page-title">
<spring:message code="av_sample_vedio_control"/>
<spring:message code="av_sample_video_control"/>
<small><spring:message code="date_list"/></small>
</h3>

View File

@@ -46,7 +46,7 @@
<div class="login-head"> <spring:message code='login'/> </div>
<div class="login-body">
<div class="pull-left login-avatar-block">
<img src="${pageContext.request.contextPath}/static/pages/img/photo.jpg" class="login-avatar"> </div>
<img src="${pageContext.request.contextPath}/static/pages/img/login-02.png" class="login-avatar"> </div>
<form id="loginForm" class="login-form pull-left" action="${pageContext.request.contextPath }/login" method="post">
<div class="form-group">
<input id="username" name="username" type="text" class="form-control placeholder-no-fix " value="${username}" placeholder="<spring:message code='fill_loginName'/>"/>
@@ -73,7 +73,7 @@
</form>
</div>
<div class="login-bottom">
<a href="">Not Amanda Smith?</a>
<!-- <a href="">Not Amanda Smith?</a> -->
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB