develop

Conflicts:
	src/main/java/com/nis/web/controller/configuration/proxy/PxyObjKeyringController.java
	证书增加CN和SAN列,修改时间类型
	common.js去掉无用字符
	国际化增加cert_not_match_domain
This commit is contained in:
duandongmei
2018-11-06 11:36:31 +08:00
119 changed files with 2944 additions and 1579 deletions

View File

@@ -22,7 +22,7 @@ public class PolicyGroupInfo extends BaseCfg<PolicyGroupInfo> implements Seriali
private Integer groupType;
private Integer serviceGroupId;
private String description;
private Integer asnNo;
private Long asnNo;
public Integer getServiceGroupId() {
return serviceGroupId;
@@ -66,10 +66,10 @@ public class PolicyGroupInfo extends BaseCfg<PolicyGroupInfo> implements Seriali
public void setDescription(String description) {
this.description = description;
}
public Integer getAsnNo() {
public Long getAsnNo() {
return asnNo;
}
public void setAsnNo(Integer asnNo) {
public void setAsnNo(Long asnNo) {
this.asnNo = asnNo;
}

View File

@@ -43,7 +43,14 @@ public class BaseStringCfg<T> extends BaseCfg<T> {
protected Integer appCode;//仅用于copy属性使用
protected Integer behavCode;//仅用于copy属性使用
protected Integer specServiceId;//仅用于copy属性使用
protected String domain;//仅用于copy属性使用
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
public Integer getAppCode() {
return appCode;
}

View File

@@ -29,13 +29,28 @@ public class PxyObjKeyring extends BaseCfg<PxyObjKeyring> {
@ExcelField(title="issuer",sort=6)
private String issuer;
@ExcelField(title="not_before_time",sort=8)
private Date notBeforeTime;
private String notBeforeTime;
@ExcelField(title="not_after_time",sort=9)
private Date notAfterTime;
private String notAfterTime;
@ExcelField(title="certificate_subject",sort=7)
private String subject;
@ExcelField(title="keyring_name",sort=1)
private String keyringName;
private String cn;
private String altName;
public String getCn() {
return cn;
}
public String getAltName() {
return altName;
}
public void setCn(String cn) {
this.cn = cn;
}
public void setAltName(String altName) {
this.altName = altName;
}
public String getKeyringName() {
@@ -86,16 +101,16 @@ public class PxyObjKeyring extends BaseCfg<PxyObjKeyring> {
public void setIssuer(String issuer) {
this.issuer = issuer;
}
public Date getNotAfterTime() {
public String getNotAfterTime() {
return notAfterTime;
}
public Date getNotBeforeTime() {
public String getNotBeforeTime() {
return notBeforeTime;
}
public void setNotAfterTime(Date notAfterTime) {
public void setNotAfterTime(String notAfterTime) {
this.notAfterTime = notAfterTime;
}
public void setNotBeforeTime(Date notBeforeTime) {
public void setNotBeforeTime(String notBeforeTime) {
this.notBeforeTime = notBeforeTime;
}
public String getSubject() {

View File

@@ -0,0 +1,58 @@
/**
*@Title: BaseStringConfig.java
*@Package com.nis.domain.restful
*@Description TODO
*@author dell
*@date 2018年2月5日 下午5:26:02
*@version 版本号
*/
package com.nis.domain.configuration.template;
import com.nis.util.excel.ExcelField;
/**
* @Description: excel导入字符串类配置
*/
public class AppDomainTemplate {
private String cfgDesc;
private String cfgKeywords;
private Integer matchMethod ;
private Integer isHex;
private Integer isCaseInsenstive;
@ExcelField(title="config_describe",align=2,sort=1)
public String getCfgDesc() {
return cfgDesc;
}
public void setCfgDesc(String cfgDesc) {
this.cfgDesc = cfgDesc;
}
@ExcelField(title="domain_name",sort=2)
public String getCfgKeywords() {
return cfgKeywords;
}
public void setCfgKeywords(String cfgKeywords) {
this.cfgKeywords = cfgKeywords;
}
@ExcelField(title="match_method",dictType="MATCH_METHOD",sort=13)
public Integer getMatchMethod() {
return matchMethod;
}
public void setMatchMethod(Integer matchMethod) {
this.matchMethod = matchMethod;
}
@ExcelField(title="is_hex",dictType="IS_HEX",sort=14)
public Integer getIsHex() {
return isHex;
}
public void setIsHex(Integer isHex) {
this.isHex = isHex;
}
@ExcelField(title="is_case_insenstive",dictType="CASE_INSENSTIVE",sort=15)
public Integer getIsCaseInsenstive() {
return isCaseInsenstive;
}
public void setIsCaseInsenstive(Integer isCaseInsenstive) {
this.isCaseInsenstive = isCaseInsenstive;
}
}

View File

@@ -0,0 +1,140 @@
package com.nis.domain.dashboard;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.google.gson.annotations.SerializedName;
import com.wordnik.swagger.annotations.ApiModelProperty;
public class NtcRadiusReport implements Serializable{
private static final long serialVersionUID = 7635016645942704971L;
@JsonInclude(value = Include.NON_NULL)
@ApiModelProperty(value = "接入IP", required = true)
protected String nasIp;
@JsonInclude(value = Include.NON_NULL)
@ApiModelProperty(value = "用户名", required = true)
protected String account;
@JsonInclude(value = Include.NON_NULL)
@ApiModelProperty(value = "次数", required = true)
protected Long num;
@JsonInclude(value = Include.NON_NULL)
@ApiModelProperty(value = "统计时间", required = true)
protected String reportTime;
/**
* 业务类型1:用户名和接口IP列表 2:根据用户统计IP变化趋势 3IP根据统计用户变化趋势
*/
protected String searchBusinessType = "1";
@SerializedName("searchReportStartTime")
protected String searchFoundStartTime;
@SerializedName("searchReportEndTime")
protected String searchFoundEndTime;
protected Long searchReportStartTimeCluster;
protected Long searchReportEndTimeCluster;
protected String searchNasIp;
protected String searchAccount;
protected String groupType;
public String getNasIp() {
return nasIp;
}
public void setNasIp(String nasIp) {
this.nasIp = nasIp;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public Long getNum() {
return num;
}
public void setNum(Long num) {
this.num = num;
}
public String getReportTime() {
return reportTime;
}
public void setReportTime(String reportTime) {
this.reportTime = reportTime;
}
public String getSearchBusinessType() {
return searchBusinessType;
}
@JsonIgnore
public void setSearchBusinessType(String searchBusinessType) {
this.searchBusinessType = searchBusinessType;
}
@JsonIgnore
public String getSearchFoundStartTime() {
return searchFoundStartTime;
}
public void setSearchFoundStartTime(String searchFoundStartTime) {
this.searchFoundStartTime = searchFoundStartTime;
}
@JsonIgnore
public String getSearchFoundEndTime() {
return searchFoundEndTime;
}
public void setSearchFoundEndTime(String searchFoundEndTime) {
this.searchFoundEndTime = searchFoundEndTime;
}
@JsonIgnore
public Long getSearchReportStartTimeCluster() {
return searchReportStartTimeCluster;
}
public void setSearchReportStartTimeCluster(
Long searchReportStartTimeCluster) {
this.searchReportStartTimeCluster = searchReportStartTimeCluster;
}
@JsonIgnore
public Long getSearchReportEndTimeCluster() {
return searchReportEndTimeCluster;
}
public void setSearchReportEndTimeCluster(Long searchReportEndTimeCluster) {
this.searchReportEndTimeCluster = searchReportEndTimeCluster;
}
@JsonIgnore
public String getSearchNasIp() {
return searchNasIp;
}
public void setSearchNasIp(String searchNasIp) {
this.searchNasIp = searchNasIp;
}
@JsonIgnore
public String getSearchAccount() {
return searchAccount;
}
public void setSearchAccount(String searchAccount) {
this.searchAccount = searchAccount;
}
@JsonIgnore
public String getGroupType() {
return groupType;
}
public void setGroupType(String groupType) {
this.groupType = groupType;
}
}

View File

@@ -16,12 +16,12 @@ public class ConfigGroupInfo {
private Integer groupType;
@ExcelField(title="cfg_id",sort=301)
private Integer compileId;
private Integer asnId;
private Long asnId;
public Integer getAsnId() {
public Long getAsnId() {
return asnId;
}
public void setAsnId(Integer asnId) {
public void setAsnId(Long asnId) {
this.asnId = asnId;
}
public Integer getCompileId() {

View File

@@ -91,7 +91,11 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
return multipartParsingResult;
} catch (FileUploadBase.SizeLimitExceededException ex) {
throw new MultiPartNewException("",fileUploadTotalSize,fileUpload.getSizeMax(),languageProp,ex);
if(fileUploadTotalSize==0l){
throw new MultiPartNewException(languageProp, ex);
}else{
throw new MultiPartNewException("",fileUploadTotalSize,fileUpload.getSizeMax(),languageProp,ex);
}
} catch (FileUploadException ex) {
throw new MultiPartNewException(languageProp, ex);
}catch (IOException ex) {

View File

@@ -56,6 +56,10 @@ public final class Constants {
* 配置审核下发的类型 回调类型
*/
public static final int CALLBACK_TYPE=2;
/**
* 域名验证正则
*/
public static final String DOMAIN_REGEXP=Configurations.getStringProperty("domain_regexp", "*");
/**
* IP验证正则
*/
@@ -680,6 +684,7 @@ public final class Constants {
public static final String NTC_TOTAL_REPORT=Configurations.getStringProperty("ntcTotalReport","ntcTotalReport");
public static final String TRAFFIC_IPACTIVE_FIVEMINUTE=Configurations.getStringProperty("trafficIpActiveFiveMinute","trafficIpActiveFiveMinute");
public static final String TRAFFIC_IPACTIVE_ONEHOUR=Configurations.getStringProperty("trafficIpActiveOneHour","trafficIpActiveOneHour");
public static final String NTC_RADIUS_REPORT=Configurations.getStringProperty("ntcRadiusReport","ntcRadiusReport");
/**
* httpclient 工具超时时间设置

View File

@@ -485,21 +485,21 @@ public class ExportExcel {
if((","+region.getConfigIpPattern()+",").indexOf(",3,") > -1){
commentStr=commentStr+Constants.IPV4_DEFAULT_IP_VALUE+"IPv4"+"\n";
if(StringUtil.isEmpty(defaultValue)){
defaultValue=Constants.IPV4_DEFAULT_IP_VALUE+"IPv4";
defaultValue=Constants.IPV4_DEFAULT_IP_VALUE;
}
index++;
}
if((","+region.getConfigIpPattern()+",").indexOf(",2,") > -1){
commentStr=commentStr+Constants.IPV4_DEFAULT_IP_RANGE_VALUE+""+msgProp.getProperty("ipv4_range_tip")+""+"\n";
if(StringUtil.isEmpty(defaultValue)){
defaultValue=Constants.IPV4_DEFAULT_IP_RANGE_VALUE+""+msgProp.getProperty("ipv4_range_tip");
defaultValue=Constants.IPV4_DEFAULT_IP_RANGE_VALUE;
}
index++;
}
if((","+region.getConfigIpPattern()+",").indexOf(",1,") > -1){
commentStr=commentStr+Constants.IPV4_DEFAULT_IP_SUBNET_VALUE+""+msgProp.getProperty("ipv4_subnet_tip")+""+"\n";
if(StringUtil.isEmpty(defaultValue)){
defaultValue=Constants.IPV4_DEFAULT_IP_SUBNET_VALUE+""+msgProp.getProperty("ipv4_subnet_tip")+"";
defaultValue=Constants.IPV4_DEFAULT_IP_SUBNET_VALUE;
}
index++;
}
@@ -508,21 +508,21 @@ public class ExportExcel {
if((","+region.getConfigIpPattern()+",").indexOf(",3,") > -1){
commentStr=commentStr+Constants.IPV6_DEFAULT_IP_VALUE+"IPv6"+"\n";
if(StringUtil.isEmpty(defaultValue)){
defaultValue=Constants.IPV6_DEFAULT_IP_VALUE+"IPv6";
defaultValue=Constants.IPV6_DEFAULT_IP_VALUE;
}
index++;
}
if((","+region.getConfigIpPattern()+",").indexOf(",2,") > -1){
commentStr=commentStr+Constants.IPV6_DEFAULT_IP_RANGE_VALUE+""+msgProp.getProperty("ipv6_range_tip")+""+"\n";
if(StringUtil.isEmpty(defaultValue)){
defaultValue=Constants.IPV6_DEFAULT_IP_RANGE_VALUE+""+msgProp.getProperty("ipv6_range_tip")+"";
defaultValue=Constants.IPV6_DEFAULT_IP_RANGE_VALUE;
}
index++;
}
if((","+region.getConfigIpPattern()+",").indexOf(",1,") > -1){
commentStr=commentStr+Constants.IPV6_DEFAULT_IP_SUBNET_VALUE+""+msgProp.getProperty("ipv6_subnet_tip")+""+"\n\n";
if(StringUtil.isEmpty(defaultValue)){
defaultValue=Constants.IPV6_DEFAULT_IP_SUBNET_VALUE+""+msgProp.getProperty("ipv6_subnet_tip")+"";
defaultValue=Constants.IPV6_DEFAULT_IP_SUBNET_VALUE;
}
index++;
}

View File

@@ -17,11 +17,14 @@ import java.util.List;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.hbase.protobuf.generated.CellProtos.CellType;
import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -219,6 +222,35 @@ public class ImportExcel {
}
return val;
}
/**
* 获取单元格值
* @param row 获取的行
* @param column 获取单元格列号
* @return 单元格值
*/
public Object getStringCellValue(Row row, int column){
Object val = "";
try{
Cell cell = row.getCell(column);
if (cell != null){
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC){
HSSFDataFormatter dataFormatter = new HSSFDataFormatter();
val = dataFormatter.formatCellValue(cell);
}else if (cell.getCellType() == Cell.CELL_TYPE_STRING){
val = cell.getStringCellValue();
}else if (cell.getCellType() == Cell.CELL_TYPE_FORMULA){
val = cell.getCellFormula();
}else if (cell.getCellType() == Cell.CELL_TYPE_BOOLEAN){
val = cell.getBooleanCellValue();
}else if (cell.getCellType() == Cell.CELL_TYPE_ERROR){
val = cell.getErrorCellValue();
}
}
}catch (Exception e) {
return val;
}
return val;
}
/**
* //递归获取cls实体对象及父级对象的属性
* wx:修改,子类覆盖父类的同名方法
@@ -786,7 +818,8 @@ public class ImportExcel {
Row row = this.getRow(i);
StringBuilder sb = new StringBuilder();
for (Object[] os : annotationList){
Object val = this.getCellValue(row, column++);
// Object val = this.getCellValue(row, column++);
Object val = this.getStringCellValue(row, column++);
if (val != null){
ExcelField ef = (ExcelField)os[0];
// If is dict type, get dict value

View File

@@ -51,6 +51,7 @@ import com.alibaba.fastjson.JSON;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants;
import com.nis.util.Encodes;
import com.nis.util.StringUtil;
/**
* @ClassName: HttpClientBean.java
@@ -193,8 +194,12 @@ public class HttpClientUtil {
String url = "";
try {
URIBuilder uriBuilder = new URIBuilder(destUrl);
for (String param : params.keySet()) {
uriBuilder.addParameter(param, params.get(param).toString());
if(params!=null) {
for (String param : params.keySet()) {
if(!StringUtil.isBlank(param)&&params.get(param)!=null) {
uriBuilder.addParameter(param, params.get(param).toString());
}
}
}
System.err.println(uriBuilder);
url=uriBuilder.toString();

View File

@@ -55,6 +55,7 @@ import com.nis.domain.configuration.DnsResStrategy;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.RequestInfo;
import com.nis.domain.configuration.StringCfgTemplate;
import com.nis.domain.configuration.template.AppDomainTemplate;
import com.nis.domain.configuration.template.AsnIpTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate;
import com.nis.domain.configuration.template.DdosIpTemplate;
@@ -857,6 +858,7 @@ public class BaseController {
}
StringBuffer errTip = new StringBuffer();
Pattern pattern = Pattern.compile("\t|\r|\n|\b|\f");
Pattern domainPattern = Pattern.compile(Constants.DOMAIN_REGEXP);
for (int i = 0; i < list.size(); i++) {
StringBuffer errInfo = new StringBuffer();
BaseStringCfg baseStringCfg = new BaseStringCfg();
@@ -880,47 +882,71 @@ public class BaseController {
}
}
String keyword = baseStringCfg.getCfgKeywords();
if (StringUtils.isBlank(keyword)) {
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("key_word") + " ") + ";");
}
if (mulityKeywordsP.equals("0")) {
if (keyword.indexOf("\n") > -1) {
if (!regionDict.getFunctionId().equals(403)) {
if (StringUtils.isBlank(keyword)) {
errInfo.append(
String.format(prop.getProperty("not_multiple"), prop.getProperty("key_word")) + ";");
String.format(prop.getProperty("can_not_null"), prop.getProperty("key_word") + " ") + ";");
}
Matcher m = pattern.matcher(keyword);
if (m.find()) {
errInfo.append(String.format(prop.getProperty("has_invisible_char"),
prop.getProperty("key_word") + " '" + keyword + "'") + ";");
}
} else {
boolean has = false;
Set<String> keywordSet=Sets.newHashSet();
for (String key : keyword.split("\n")) {
Matcher m = pattern.matcher(key);
if (mulityKeywordsP.equals("0")) {
if (keyword.indexOf("\n") > -1) {
errInfo.append(
String.format(prop.getProperty("not_multiple"), prop.getProperty("key_word")) + ";");
}
Matcher m = pattern.matcher(keyword);
if (m.find()) {
has = true;
errInfo.append(String.format(prop.getProperty("has_invisible_char"),
prop.getProperty("key_word") + " '" + key + "'") + ";");
break;
prop.getProperty("key_word") + " '" + keyword + "'") + ";");
}
if(!keywordSet.contains(key)) {
keywordSet.add(key);
}else {
errInfo.append(prop.getProperty("key_word") + " '" + key + "'"+" "+prop.getProperty("repeat") + ";");
} else {
boolean has = false;
Set<String> keywordSet=Sets.newHashSet();
for (String key : keyword.split("\n")) {
Matcher m = pattern.matcher(key);
if (m.find()) {
has = true;
errInfo.append(String.format(prop.getProperty("has_invisible_char"),
prop.getProperty("key_word") + " '" + key + "'") + ";");
break;
}
if(!keywordSet.contains(key)) {
keywordSet.add(key);
}else {
errInfo.append(prop.getProperty("key_word") + " '" + key + "'"+" "+prop.getProperty("repeat") + ";");
}
}
if (!has) {
if(keyword.replaceAll("\n","").length()>1024) {
errInfo.append(String.format(prop.getProperty("most_keywords"),
prop.getProperty("key_word")) + ";");
}else {
String reWord = keyword.replaceAll("\n", Constants.KEYWORD_EXPR);
baseStringCfg.setCfgKeywords(reWord);
}
}
}
if (!has) {
if(keyword.replaceAll("\n","").length()>1024) {
errInfo.append(String.format(prop.getProperty("most_keywords"),
prop.getProperty("key_word")) + ";");
}else {
if (StringUtils.isBlank(keyword)) {
errInfo.append(
String.format(prop.getProperty("can_not_null"), prop.getProperty("domain_name") + " ") + ";");
}else {
Matcher m = pattern.matcher(keyword);
if (m.find()) {
errInfo.append(String.format(prop.getProperty("has_invisible_char"),
prop.getProperty("domain_name") + " '" + keyword + "'") + ";");
}else {
String reWord = keyword.replaceAll("\n", Constants.KEYWORD_EXPR);
baseStringCfg.setCfgKeywords(reWord);
m = domainPattern.matcher(keyword);
if(!m.matches()) {
errInfo.append(String.format(prop.getProperty("not_valid_domain"),
prop.getProperty("domain_name") + " '" + keyword + "'") + ";");
}else {
baseStringCfg.setDomain(keyword);
}
}
}
}
Integer exprType = baseStringCfg.getExprType();
boolean has = false;
if (exprType == null) {
@@ -1474,7 +1500,7 @@ public class BaseController {
+ ";");
}else {
try {
Integer.parseInt(userRegion1);
Long asnNo=Long.parseLong(userRegion1);
/*ConfigGroupInfo configGroupInfo=asnIpCfgService.getConfigGroupInfoByAsnNo(asnNo);
if(configGroupInfo==null) {//不存在则新增
PolicyGroupInfo info=new PolicyGroupInfo();
@@ -1486,6 +1512,11 @@ public class BaseController {
configGroupInfo=asnIpCfgService.getConfigGroupInfoByAsnNo(asnNo);
}
baseIpCfg.setAsnIpGroup(configGroupInfo.getGroupId());*/
if(asnNo.longValue()>4294967295l||asnNo.longValue()<1) {
errInfo.append(prop.getProperty("asn_no")+" "+
String.format(prop.getProperty("must_between"),"1","4294967295" )
+ ";");
}
}catch (Exception e) {
// TODO: handle exception
errInfo.append(
@@ -3272,6 +3303,10 @@ public class BaseController {
List<P2pHashStringTemplate> list = ei.getDataList(P2pHashStringTemplate.class,
this.getMsgProp(),regionDict,serviceDict);
stringCfgs = this.checkStringCfg(serviceDict, regionDict, list);
}else if (regionDict.getFunctionId().equals(403)) {
List<AppDomainTemplate> list = ei.getDataList(AppDomainTemplate.class,
this.getMsgProp(),regionDict,serviceDict);
stringCfgs = this.checkStringCfg(serviceDict, regionDict, list);
} else {
List<StringAllTemplate> list = ei.getDataList(StringAllTemplate.class, this.getMsgProp(),regionDict,serviceDict);
stringCfgs = this.checkStringCfg(serviceDict, regionDict, list);
@@ -3307,6 +3342,7 @@ public class BaseController {
|| serviceDict.getServiceId().intValue() == 148
|| serviceDict.getServiceId().intValue() == 1028// app ip
|| serviceDict.getServiceId().intValue() == 1024//app http
|| serviceDict.getServiceId().intValue() == 1026//app domain
)) {
if (StringUtils.isNotBlank(specServiceId)) {
specificServiceCfg = specificServiceCfgService
@@ -3316,6 +3352,7 @@ public class BaseController {
if (regionDict.getRegionType().equals(1)) {// IP
if(regionDict.getFunctionId().intValue()==600) {//ans ip
Map<String,List<AsnIpCfg>> asnIpCfgs=new HashMap<>();
int total=ipPortCfgs.size();
for (BaseIpCfg cfg : ipPortCfgs) {
AsnIpCfg _cfg=new AsnIpCfg();
BeanUtils.copyProperties(cfg, _cfg);
@@ -3345,7 +3382,7 @@ public class BaseController {
}
}
ipPortCfgs.clear();
asnIpCfgService.saveAsnIpBatch(asnIpCfgs);
asnIpCfgService.saveAsnIpBatch(asnIpCfgs,total);
}else {
List<Integer> compileIds=Lists.newArrayList();
List<Integer> regionIds=Lists.newArrayList();
@@ -3507,9 +3544,12 @@ public class BaseController {
appPolicyCfgs.add(appPolicyCfg);
}
} else {
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"});
cfgIndexInfos.add(cfgIndexInfo);
if(!regionDict.getFunctionId().equals(403)) {
CfgIndexInfo cfgIndexInfo = new CfgIndexInfo();
BeanUtils.copyProperties(cfg, cfgIndexInfo, new String[] {"cfgId"});
cfgIndexInfos.add(cfgIndexInfo);
}
}
ind++;
}
@@ -3547,6 +3587,9 @@ public class BaseController {
if(regionDict.getDictId().intValue()==16){
avContentCfgService.saveVoIpAccountCfg(stringCfgs);
}
if(regionDict.getDictId().intValue()==64){
appCfgService.saveAppDomainCfg(stringCfgs);
}
} else if (regionDict.getRegionType().equals(3)) {
List<Integer> compileIds=Lists.newArrayList();
try {

View File

@@ -199,14 +199,14 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppPolicyCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
logger.error("saveAppPolicyCfg failed",e);
e.printStackTrace();
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -240,7 +240,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("app策略配置下发失败",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","");
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
@@ -320,14 +320,14 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppIpCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppIpCfg failed",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -372,7 +372,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("app协议IP配置下发失败",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error",e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
@@ -453,14 +453,14 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppHttpCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppHttpCfg failed", e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -493,7 +493,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("app http配置下发失败",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error",e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
@@ -572,13 +572,13 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppDomainCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -611,7 +611,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("app协议domain配置下发失败",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error",e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
@@ -690,14 +690,14 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppByteCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppByteCfg failed",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -730,7 +730,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("app协议byte配置下发失败",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error",e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
@@ -810,14 +810,14 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppSslCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppSslCfg failed", e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -932,12 +932,12 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppTcpeCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppTcpCfg failed",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
}
@@ -1057,12 +1057,12 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppHeaderCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppHeaderCfg failed",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
}
@@ -1097,7 +1097,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("app Header配置下发失败",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error",e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
@@ -1217,16 +1217,16 @@ public class AppCfgController extends BaseController {
entity.setDomain(entity.getDomain());
}
appCfgService.saveOrUpdateAppTopicDomainCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("app主题网站配置下发失败"+e.getMessage());;
addMessage(redirectAttributes,"request_service_failed");
addMessage(redirectAttributes,"error","request_service_failed");
}else {
e.printStackTrace();
logger.error("app主题网站配置下发失败",e);
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -1353,12 +1353,12 @@ public class AppCfgController extends BaseController {
}
appBuiltInFeatureService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
e.printStackTrace();
logger.error("appBuiltinFeatureFileSaveOrUpdate failed",e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
}
@@ -1404,7 +1404,7 @@ public class AppCfgController extends BaseController {
e.printStackTrace();
logger.error("appBuiltinFeature audit failed", e);
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error",e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}

View File

@@ -129,7 +129,11 @@ public class AppFeatureCfgController extends BaseController {
appMultiFeatureCfgService.saveOrUpdateAppFeatureCfg(entity);
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "save_failed");
}
}
return "redirect:" + adminPath +"/app/feature/multiFeatureCfgList?functionId="+entity.getFunctionId();
@@ -158,11 +162,11 @@ public class AppFeatureCfgController extends BaseController {
appMultiFeatureCfgService.auditAppFeatureCfg(entity,isAudit);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("app 特征配置下发失败:"+e.getMessage());
logger.error("app 特征配置下发失败:"+e.getMessage());
addMessage(redirectAttributes,"error", "request_service_failed");
} catch (Exception e) {
e.printStackTrace();
logger.info("app 特征配置下发失败:"+e.getMessage());
logger.error("app 特征配置下发失败:"+e.getMessage());
addMessage(redirectAttributes,"error", "audit_failed");
}
}

View File

@@ -135,15 +135,15 @@ public class BasicProtocolController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppPolicyCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("基础协议信息保存失败",e);
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
// addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"request_service_failed");
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -206,10 +206,10 @@ public class BasicProtocolController extends BaseController {
logger.error("基础协议信息保存失败",e);
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
e.printStackTrace();
addMessage(redirectAttributes,"request_service_failed");
addMessage(redirectAttributes,"error","request_service_failed");
}else {
e.printStackTrace();
addMessage(redirectAttributes,"delete_failed");
addMessage(redirectAttributes,"error","delete_failed");
}
}
return "redirect:" + adminPath +"/basicprotocol/list?functionId="+functionId;

View File

@@ -129,7 +129,11 @@ public class CommonController extends BaseController {
addMessage(model,"success","save_success");
}catch(Exception e){
logger.error("保存失败",e);
addMessage(model,"error","save_failed");
if(e instanceof MaatConvertException) {
addMessage(model,"error", "request_service_failed");
}else {
addMessage(model,"error","save_failed");
}
}
}
public void _saveOrUpdateDomain(String cfgName,RedirectAttributes model, HttpUrlCfg cfg) {
@@ -152,7 +156,11 @@ public class CommonController extends BaseController {
addMessage(model,"success","save_success");
}catch(Exception e){
logger.error("保存失败",e);
addMessage(model,"error","save_failed");
if(e instanceof MaatConvertException) {
addMessage(model,"error", "request_service_failed");
}else {
addMessage(model,"error", "save_failed");
}
}
}
public void _deleteIp(String cfgName,String ids,String compileIds,Integer functionId,RedirectAttributes model) {
@@ -220,7 +228,7 @@ public class CommonController extends BaseController {
addMessage(redirectAttributes,"success","audit_success");
}catch(MaatConvertException e){
logger.error("审核失败", e);
addMessage(redirectAttributes,"error", e.getMessage());
addMessage(redirectAttributes,"error", "request_service_failed");
}catch(Exception e){
logger.error("审核失败", e);
addMessage(redirectAttributes,"error", "audit_failed");
@@ -328,7 +336,7 @@ public class CommonController extends BaseController {
}
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes,"error", "导出失败!失败信息:"+e.getMessage());
addMessage(redirectAttributes,"error", "export_failed" );
}
}
}

View File

@@ -157,14 +157,14 @@ public class EncryptedTunnelBehaviorController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppPolicyCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
e.printStackTrace();
logger.error("加密隧道信息保存失败",e);
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -224,11 +224,9 @@ public class EncryptedTunnelBehaviorController extends BaseController {
} catch (Exception e) {
logger.error("加密隧道协议保存失败",e);
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
addMessage(redirectAttributes,"error","request_service_failed");
}else {
e.printStackTrace();
addMessage(redirectAttributes,"delete_failed");
addMessage(redirectAttributes,"error","delete_failed");
}
}
return "redirect:" + adminPath +"/encryptedtunnelbehav/list?functionId="+functionId;

View File

@@ -14,6 +14,8 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.GroupAreaInfo;
import com.nis.exceptions.CallExternalProceduresException;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.service.configuration.GroupAreaService;
@@ -66,10 +68,14 @@ public class GroupAreaController extends BaseController {
public String saveOrUpdate(GroupAreaInfo cfg,Model model,RedirectAttributes redirectAttributes) {
try {
groupAreaService.saveOrUpdate(cfg);
addMessage(redirectAttributes, "save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
logger.error("新增失败",e);
addMessage(redirectAttributes, "save_failed");
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath + "/cfg/groupArea/groupAreaList";
}

View File

@@ -76,11 +76,15 @@ public class DnsIpCfgController extends BaseController {
,RedirectAttributes redirectAttributes){
try{
dnsIpCfgService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/cfg/dnsIp/list?functionId="+cfg.getFunctionId();
@@ -167,7 +171,11 @@ public class DnsIpCfgController extends BaseController {
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("DnsIp export failed",e);
addMessage(redirectAttributes, "export_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "export_failed");
}
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}

View File

@@ -82,10 +82,11 @@ public class DnsResStrategyController extends BaseController {
dnsResStrategyService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
}catch(Exception e){
e.printStackTrace();
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"success","save_success");
}catch (MaatConvertException e) {
addMessage(redirectAttributes,"error", "request_service_failed");
} catch (Exception e) {
addMessage(redirectAttributes,"error", "save_failed");
}
return "redirect:" + adminPath +"/maintenance/dnsResStrategy/list?functionId="+cfg.getFunctionId();
@@ -188,7 +189,11 @@ public class DnsResStrategyController extends BaseController {
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
} catch (Exception e) {
logger.error("Dns export failed",e);
addMessage(redirectAttributes, "export_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "export_failed");
}
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}

View File

@@ -70,10 +70,14 @@ public class IpMultiplexPoolCfgController extends BaseController {
ipMultiplexPoolCfgService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
e.printStackTrace();
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "save_failed");
}
}
return "redirect:" + adminPath +"/maintenance/ipMultiplexPoolCfg/list?functionId="+cfg.getFunctionId();
@@ -98,7 +102,8 @@ public class IpMultiplexPoolCfgController extends BaseController {
}
addMessage(redirectAttributes,"delete_success");
}catch(Exception e){
addMessage(redirectAttributes,"delete_failed");
logger.error(e);
addMessage(redirectAttributes,"error", "delete_failed");
}
return "redirect:" + adminPath +"/maintenance/ipMultiplexPoolCfg/list?functionId="+functionId;
}
@@ -181,10 +186,14 @@ public class IpMultiplexPoolCfgController extends BaseController {
}
ipMultiplexPoolCfgService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
e.printStackTrace();
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "save_failed");
}
}
return "redirect:" + adminPath +"/maintenance/ipMultiplexPoolCfg/snatlist?functionId="+cfg.getFunctionId();
@@ -201,8 +210,12 @@ public class IpMultiplexPoolCfgController extends BaseController {
ipMultiplexPoolCfgService.audit(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("SNAT地址池管理配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
logger.error("SNAT地址池管理配置下发失败"+e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "audit_failed");
}
}
}
@@ -219,6 +232,7 @@ public class IpMultiplexPoolCfgController extends BaseController {
}
addMessage(redirectAttributes,"delete_success");
}catch(Exception e){
logger.error(e);
addMessage(redirectAttributes,"delete_failed");
}
return "redirect:" + adminPath +"/maintenance/ipMultiplexPoolCfg/snatlist?functionId="+functionId;

View File

@@ -62,11 +62,15 @@ public class DdosCfgController extends BaseController {
@ModelAttribute("cfg")DdosIpCfg cfg, RedirectAttributes redirectAttributes){
try{
ddosCfgService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/manipulation/ddos/list?functionId="+cfg.getFunctionId();

View File

@@ -55,14 +55,14 @@ public class AsnPolicyCfgController extends BaseController {
,RedirectAttributes redirectAttributes){
try{
asnPolicyCfgService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -88,11 +88,11 @@ public class AsnPolicyCfgController extends BaseController {
asnPolicyCfgService.audit(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("dns fake ip配置下发失败"+e.getMessage());
logger.error("dns fake ip配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
} catch (Exception e) {
e.printStackTrace();
logger.info("dns fake ip配置下发失败"+e.getMessage());
logger.error("dns fake ip配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error","audit_failed");
}

View File

@@ -373,7 +373,11 @@ public class AvContentController extends BaseController {
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
addMessage(redirectAttributes,"error","save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/ntc/av/contIpList?functionId="+cfg.getFunctionId();
@@ -481,7 +485,11 @@ public class AvContentController extends BaseController {
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
addMessage(redirectAttributes,"error","save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/ntc/av/picIpList?functionId="+cfg.getFunctionId();
@@ -511,11 +519,11 @@ public class AvContentController extends BaseController {
} catch (MaatConvertException e) {
e.printStackTrace();
logger.error("Pic Ip配置下发失败",e);
addMessage(redirectAttributes,"error","");
addMessage(redirectAttributes,"error","request_service_failed");
} catch (Exception e) {
e.printStackTrace();
logger.error("Pic Ip配置下发失败",e);
addMessage(redirectAttributes,"error", "audit_failed");
addMessage(redirectAttributes,"error","audit_failed");
}
}
@@ -603,7 +611,7 @@ public class AvContentController extends BaseController {
CfgIndexInfo cfg ,RedirectAttributes redirectAttributes){
try{
avContentCfgService.saveOrUpdateContUrl(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
if(e instanceof MaatConvertException) {
e.printStackTrace();
@@ -639,10 +647,14 @@ public class AvContentController extends BaseController {
for(String id :idArray){
try {
avContentCfgService.auditContUrl(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("Cont Url配置下发失败",e);
addMessage(redirectAttributes,"error", "audit_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
@@ -736,7 +748,11 @@ public class AvContentController extends BaseController {
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
addMessage(redirectAttributes,"error","save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/ntc/av/picUrlList?functionId="+cfg.getFunctionId();
@@ -763,10 +779,14 @@ public class AvContentController extends BaseController {
for(String id :idArray){
try {
avContentCfgService.auditPicUrl(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("Pic Url配置下发失败",e);
addMessage(redirectAttributes,"error", e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
@@ -874,7 +894,7 @@ public class AvContentController extends BaseController {
return null;
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes,"error", "导出失败!失败信息:"+e.getMessage());
addMessage(redirectAttributes,"error", "export_failed");
}
return "redirect:" + adminPath +"/ntc/av/picUrlList?functionId="+entity.getFunctionId();

View File

@@ -238,16 +238,17 @@ public class AvController extends BaseController {
avCfgService.saveOrUpdateAvFileSample(entity, srcFile);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("文件上传失败",e);
e.printStackTrace();
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","save_failed");
}
}
@@ -258,14 +259,14 @@ public class AvController extends BaseController {
public String saveAudioSignSample(Model model,HttpServletRequest request,HttpServletResponse response, RedirectAttributes redirectAttributes,String ids,AvSignSampleCfg entity){
try{
avCfgService.saveOrUpdateAvSignSample(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("saveAudioSignSample failed",e);
e.printStackTrace();
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"save_failed");
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/ntc/av/sample/audioSignSampleList?functionId="+entity.getFunctionId();
@@ -396,11 +397,11 @@ public class AvController extends BaseController {
}catch(Exception e){
e.printStackTrace();
if(e instanceof MaatConvertException) {
logger.info("音视频标识样例配置下发失败:"+e.getMessage());
logger.error("音视频标识样例配置下发失败:"+e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}else {
logger.error("auditAvAudioSignSample failed",e);
addMessage(redirectAttributes,"success","audit_failed");
addMessage(redirectAttributes,"error","audit_failed");
}
}
}

View File

@@ -35,6 +35,7 @@ import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.P2pHashCfg;
import com.nis.domain.configuration.P2pKeywordCfg;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.CallExternalProceduresException;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
@@ -79,7 +80,7 @@ public class FileTransferCfgController extends BaseController{
CfgIndexInfo entity,RedirectAttributes redirectAttributes) {
try {
fileTransferCfgService.saveFtpCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
if(e instanceof MaatConvertException) {
e.printStackTrace();
@@ -174,7 +175,7 @@ public class FileTransferCfgController extends BaseController{
} catch (MaatConvertException e) {
if(e instanceof MaatConvertException) {
e.printStackTrace();
logger.info("ftp配置下发失败"+e.getMessage());;
logger.error("ftp配置下发失败"+e.getMessage());;
addMessage(redirectAttributes,"request_service_failed");
}else {
e.printStackTrace();
@@ -254,11 +255,16 @@ public class FileTransferCfgController extends BaseController{
logger.info("获取文件摘要响应信息:"+result);
}
fileTransferCfgService.saveOrUpdateFileDigestCfg(entity,result,areaCfgIds);
addMessage(redirectAttributes, "save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (MaatConvertException e) {
addMessage(redirectAttributes, "request_service_failed");
} catch (IOException e) {
addMessage(redirectAttributes, "save_failed");
} catch ( Exception e) {
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
return "redirect:" + adminPath +"/ntc/fileTransfer/fileDigestList?functionId="+entity.getFunctionId();
}
@@ -280,9 +286,15 @@ public class FileTransferCfgController extends BaseController{
for(String id :idArray){
try {
fileTransferCfgService.auditFileDigestCfg(isAudit,isValid,functionId,id,auditTime);
} catch (MaatConvertException e) {
} catch ( Exception e) {
logger.error("File Digest配置下发失败",e);
addMessage(redirectAttributes, e.getMessage());
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
@@ -450,10 +462,15 @@ public class FileTransferCfgController extends BaseController{
entity.setFunctionId(functionId);
try {
fileTransferCfgService.auditP2pCfg(entity,isAudit);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("p2p配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
return "redirect:" + adminPath +"/ntc/fileTransfer/p2pList?functionId="+functionId;

View File

@@ -28,6 +28,7 @@ import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.configuration.template.AppDomainTemplate;
import com.nis.domain.configuration.template.AsnIpTemplate;
import com.nis.domain.configuration.template.ComplexStringAllTemplate;
import com.nis.domain.configuration.template.DdosIpTemplate;
@@ -309,6 +310,11 @@ public class IpController extends BaseController{
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, P2pHashStringTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else if(regionDict.getFunctionId().equals(403)) {//app domain
List<AppDomainTemplate> classList=new ArrayList<AppDomainTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, AppDomainTemplate.class, 2);
excel.setDataList(this.getMsgProp(),classList,null).
write(request,response, fileName).dispose();
}else{
List<StringAllTemplate> classList=new ArrayList<StringAllTemplate>();
ExportExcel excel=new ExportExcel(serviceDict,regionDict,this.getMsgProp(),null, StringAllTemplate.class, 2);

View File

@@ -31,6 +31,7 @@ import com.nis.domain.configuration.FileDigestCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.CallExternalProceduresException;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
@@ -70,7 +71,7 @@ public class MailCfgController extends BaseController{
}
@RequestMapping(value = {"saveMailCfg"})
@RequiresPermissions(value={"mail:config"})
public String saveMailCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,
public String saveMailCfg( RedirectAttributes redirectAttributes, Model model,HttpServletRequest request,HttpServletResponse response,String ids,
CfgIndexInfo entity,MultipartFile file) {
try {
@@ -97,8 +98,13 @@ public class MailCfgController extends BaseController{
logger.info("获取文件摘要响应信息:"+result);
}
mailCfgService.saveMailCfg(entity,result);
} catch (IOException e) {
e.printStackTrace();
} catch ( Exception e) {
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/ntc/mail/mailList?functionId="+entity.getFunctionId();
@@ -168,10 +174,15 @@ public class MailCfgController extends BaseController{
entity.setFunctionId(functionId);
try {
mailCfgService.auditMailCfg(entity,isAudit);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("mail配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
logger.error("mail配置下发失败"+e.getMessage());
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
}
return "redirect:" + adminPath +"/ntc/mail/mailList?functionId="+functionId;

View File

@@ -39,6 +39,7 @@ import com.nis.domain.configuration.HttpResHeadCfg;
import com.nis.domain.configuration.HttpUrlCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
import com.nis.exceptions.CallExternalProceduresException;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
@@ -314,10 +315,15 @@ public class WebsiteController extends BaseController{
entity.setFunctionId(functionId);
try {
websiteCfgService.auditSslCfg(entity,isAudit);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("ssl配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error", e.getMessage());
logger.error("ssl配置下发失败"+e.getMessage());
if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
}
return "redirect:" + adminPath +"/ntc/website/sslList?functionId="+functionId;
@@ -407,7 +413,7 @@ public class WebsiteController extends BaseController{
}catch (Exception e) {
e.printStackTrace();
logger.info("dns配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error", e.getMessage());
addMessage(redirectAttributes,"error", "audit_failed");
}
}
return "redirect:" + adminPath +"/ntc/website/dnsList?functionId="+functionId;

View File

@@ -246,11 +246,11 @@ public class WhiteListController extends CommonController{
domainService.auditDomainCfg(entity,isAudit);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("domain配置下发失败"+e.getMessage());
logger.error("domain配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error","request_service_failed");
}catch (Exception e) {
e.printStackTrace();
logger.info("domain配置下发失败"+e.getMessage());
logger.error("domain配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error","audit_failed");
}
}

View File

@@ -84,10 +84,14 @@ public class XmppController extends BaseController {
entity.setFunctionId(functionId);
try {
xmppCfgService.auditXmppCfg(entity,isAudit);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("http配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
return "redirect:" + adminPath +"/ntc/other/xmppList?functionId="+functionId;

View File

@@ -69,10 +69,14 @@ public class ControlPolicyController extends BaseController{
,RedirectAttributes redirectAttributes){
try{
controlPolicyService.saveOrUpdate(cfg,areaCfgIds);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/proxy/control/httpReqReplace/list?functionId="+cfg.getFunctionId();
@@ -95,9 +99,13 @@ public class ControlPolicyController extends BaseController{
for(String id :idArray){
try {
controlPolicyService.audit(isAudit,isValid,functionId,id,auditTime,Constants.REPLACE_REQ_KEY_VALUE);
} catch (MaatConvertException e) {
} catch ( Exception e) {
logger.error("配置下发失败",e);
addMessage(redirectAttributes, e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
@@ -137,10 +145,14 @@ public class ControlPolicyController extends BaseController{
,RedirectAttributes redirectAttributes){
try{
controlPolicyService.saveOrUpdate(cfg,areaCfgIds);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/proxy/control/httpResReplace/list?functionId="+cfg.getFunctionId();
@@ -163,10 +175,14 @@ public class ControlPolicyController extends BaseController{
for(String id :idArray){
try {
controlPolicyService.audit(isAudit,isValid,functionId,id,auditTime,Constants.REPLACE_RES_KEY_VALUE);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.error("配置下发失败",e);
addMessage(redirectAttributes, e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}

View File

@@ -28,6 +28,7 @@ import com.nis.domain.Page;
import com.nis.domain.callback.ProxyFileStrategyCfg;
import com.nis.domain.maat.ToMaatResult;
import com.nis.domain.maat.ToMaatResult.ResponseData;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.FileUtils;
import com.nis.util.JsonMapper;
@@ -116,10 +117,14 @@ public class FileStrategyController extends CommonController {
cfg.setContentLength(file.length());//文件长度
}
proxyFileStrategyService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}finally {
if(file != null) {
file.delete();//删除临时文件

View File

@@ -185,11 +185,15 @@ public class HttpRedirectPolicyController extends BaseController{
@ModelAttribute("cfg")CfgIndexInfo cfg,RedirectAttributes redirectAttributes){
try{
httpRedirectCfgService.saveHttpCfg(cfg);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
}catch(Exception e){
logger.error("信息保存失败",e);
e.printStackTrace();
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/proxy/control/httpRedirect/httpRedirectList?functionId="+cfg.getFunctionId();
@@ -231,10 +235,14 @@ public class HttpRedirectPolicyController extends BaseController{
entity.setFunctionId(functionId);
try {
httpRedirectCfgService.auditHttpCfg(entity,isAudit);
} catch (MaatConvertException e) {
} catch ( Exception e) {
e.printStackTrace();
logger.info("http重定向配置下发失败"+e.getMessage());
addMessage(redirectAttributes,"error", e.getMessage());
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","audit_failed");
}
}
}
return "redirect:" + adminPath +"/proxy/control/httpRedirect/httpRedirectList?functionId="+functionId;

View File

@@ -85,10 +85,14 @@ public class InterceptController extends CommonController{
public String saveInterceptIpCfg(RedirectAttributes redirectAttributes,Model model,HttpServletRequest request,HttpServletResponse response,String ids,CfgIndexInfo entity) {
try {
interceptCfgService.saveInterceptCfg(entity);
addMessage(redirectAttributes,"save_success");
addMessage(redirectAttributes,"success","save_success");
} catch (Exception e) {
logger.error("save_failed", e);
addMessage(redirectAttributes,"save_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error","request_service_failed");
}else {
addMessage(redirectAttributes,"error","save_failed");
}
}
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+entity.getFunctionId();
}
@@ -144,9 +148,13 @@ public class InterceptController extends CommonController{
try {
interceptCfgService.auditInterceptIpCfg(entity,isAudit);
addMessage(redirectAttributes,"audit_success");
} catch (MaatConvertException e) {
} catch ( Exception e) {
logger.error("intercept ip audit failed",e);
addMessage(redirectAttributes,"audit_failed");
if(e instanceof MaatConvertException) {
addMessage(redirectAttributes,"error", "request_service_failed");
}else {
addMessage(redirectAttributes,"error", "audit_failed");
}
}
}
return "redirect:" + adminPath +"/proxy/intercept/ip/list?functionId="+functionId;

View File

@@ -6,31 +6,17 @@ import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.PageLog;
import com.nis.domain.configuration.RequestInfo;
import com.nis.domain.log.NtcIpLog;
import com.nis.domain.log.SearchReport;
import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.controller.report.TestBean;
@Controller
@RequestMapping("${adminPath}/dashboard/traffic")
@@ -111,17 +97,5 @@ public class TrafficStatisticsInfoController extends BaseController {
}
return m;
}
@RequestMapping("userBehavior")
public String list(@ModelAttribute("bean") SearchReport bean,Model model, HttpServletRequest request, HttpServletResponse response) {
List<RequestInfo> requestInfos = requestInfoService.getAllRequestInfo();
model.addAttribute("requestInfos", requestInfos);
Page<TestBean> page=new Page<TestBean>(request, response);
List<TestBean> list=new ArrayList<>();
list.add(new TestBean());
page.setList(list);
model.addAttribute("page", page);
model.addAttribute("bean", bean);
return "/dashboard/trafficUserBehavior";
}
}

View File

@@ -0,0 +1,132 @@
package com.nis.web.controller.dashboard;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.dashboard.NtcRadiusReport;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.StringUtil;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping("${adminPath}/traffic")
public class TrafficStatisticsReportController extends BaseController {
/**
* 用户行为查询
* @param bean
* @param model
* @param request
* @param response
* @return
*/
@RequestMapping("userBehavior")
public String list(@ModelAttribute("log") NtcRadiusReport bean,Model model, HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> fromJsonList = new HashMap<String, Object>();
Map<String, Object> userJsonList = new HashMap<String, Object>();
Map<String, Object> ipJsonList = new HashMap<String, Object>();
String searchBusinessType = bean.getSearchBusinessType();
if("2".endsWith(searchBusinessType)) {
model.addAttribute("searchBusinessType", 2);// 用户查询
}
if("3".endsWith(searchBusinessType)) {
model.addAttribute("searchBusinessType", 3);// IP查询
}
String url = Constants.DASHBOARD_URL+Constants.NTC_RADIUS_REPORT;
String statTime = bean.getSearchFoundStartTime();
String endTime = bean.getSearchFoundEndTime();
String account = bean.getAccount();
String nasIp = bean.getNasIp();
String destUrl = url+ "?searchBusinessType=1";
String userUrl = url+ "?searchBusinessType=2";
String ipUrl =url + "?searchBusinessType=3";
List list = new ArrayList();
List userList = new ArrayList();
List ipList = new ArrayList();
try {
if(StringUtil.isBlank(statTime)&&StringUtil.isBlank(endTime)) {
statTime=DateUtils.getDate()+" 00:00:00"; // 默认今天
endTime=DateUtils.getDateTime();
bean.setSearchFoundStartTime(statTime);
bean.setSearchFoundEndTime(endTime);
}else {
statTime=URLEncoder.encode(statTime, "UTF-8");
endTime=URLEncoder.encode(endTime, "UTF-8");
String paramUrl="&searchReportStartTime="+statTime+"&searchReportEndTime="+endTime;
destUrl=destUrl+paramUrl;
userUrl=userUrl+paramUrl;
ipUrl=ipUrl+paramUrl;
}
// 用户及IP数据
String string = HttpClientUtil.get(destUrl);
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
list = (ArrayList) fromJsonList.get("data");
Map map = (Map) list.get(0);
List nasIpList=(List) map.get("nasIpList");
List accountList=(List) map.get("accountList");
model.addAttribute("nasIpList", nasIpList);
model.addAttribute("accountList", accountList);
if("2".endsWith(searchBusinessType)&&!StringUtil.isBlank(account)) {
String userString = HttpClientUtil.get(userUrl+"&searchAccount="+account);
// 指定用户 查询
Gson usergson = new GsonBuilder().create();
userJsonList = usergson.fromJson(userString, new TypeToken<Map>(){}.getType());
userList = (ArrayList) userJsonList.get("data");
model.addAttribute("userList", userList);
}
if ("3".endsWith(searchBusinessType)&&!StringUtil.isBlank(nasIp)) {
String ipString = HttpClientUtil.get(ipUrl+"&searchNasIp="+nasIp);
// 指定IP查询
Gson ipgson = new GsonBuilder().create();
ipJsonList = ipgson.fromJson(ipString, new TypeToken<Map>(){}.getType());
ipList = (ArrayList) ipJsonList.get("data");
model.addAttribute("ipList", ipList);
}
} catch (Exception e) {
e.printStackTrace();
}
return "/dashboard/trafficUserBehavior";
}
public static void main(String[] args) {
Map<String, Object> fromJsonList = new HashMap<String, Object>();
HashMap<String, Object> m = new HashMap<String, Object>();
List list = new ArrayList();
String string;
try {
string = HttpClientUtil.get("http://localhost:8082/galaxy-service/service/log/v1/ntcRadiusReport?"
+ "searchBusinessType=1&searchReportStartTime=2018-06-01+15%3A41%3A21&searchReportEndTime=2018-10-30+15%3A46%3A21");
Gson gson = new GsonBuilder().create();
fromJsonList = gson.fromJson(string, new TypeToken<Map>(){}.getType());
list = (ArrayList) fromJsonList.get("data");
Map map = (Map) list.get(0);
List nasIpList=(List) map.get("nasIpList");
List accountList=(List) map.get("accountList");
System.err.println(map.get("nasIpList"));
System.err.println(map.get("accountList"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@@ -66,13 +66,9 @@ public class DkBehaviorLogController extends BaseController{
//获取字典信息
List<CodeResult> protocolList=CodeDicUtils.getCodeList("protocolCode");
List<CodeResult> osList=CodeDicUtils.getCodeList("osCode");
List<CodeResult> browserList=CodeDicUtils.getCodeList("browserCode");
List<CodeResult> behaviorList=CodeDicUtils.getCodeList("behaviorCode");
List<CodeResult> appList=CodeDicUtils.getCodeList("appCode");
model.addAttribute("protocolList", protocolList);
model.addAttribute("osList", osList);
model.addAttribute("browserList", browserList);
model.addAttribute("behaviorList", behaviorList);
model.addAttribute("appList", appList);
String url = "";

View File

@@ -59,8 +59,6 @@ public class AppLogController extends BaseController{
//获取字典信息
List<CodeResult> protocolList=CodeDicUtils.getCodeList("protocolCode");
List<CodeResult> osList=CodeDicUtils.getCodeList("osCode");
List<CodeResult> browserList=CodeDicUtils.getCodeList("browserCode");
List<CodeResult> behaviorList=CodeDicUtils.getCodeList("behaviorCode");
List<CodeResult> appList=CodeDicUtils.getCodeList("appCode");
model.addAttribute("protocolList", protocolList);

View File

@@ -19,7 +19,7 @@ public interface AsnIpCfgDao extends CrudDao<AsnIpCfg>{
// public List<ConfigGroupInfo> findPolicyGroupInfosByType(@Param("groupId")Integer groupId);
public List<Integer> findOtherIps(@Param("groupId")Integer groupId,@Param("cfgId")Integer cfgId);
public List<Integer> countValidIPs(@Param("groups")String groups,@Param("ids")String ids);
public ConfigGroupInfo getInfoByAsnNo(@Param("asnId")Integer asnNo);
public List<AsnIpCfg> getByAsnGroup(@Param("groupId")Integer groupId,@Param("asnId")Integer asnNo);
public void deleteByAsnGroup(@Param("groupId")Integer groupId,@Param("asnId")Integer asnNo);
public ConfigGroupInfo getInfoByAsnNo(@Param("asnId")Long asnNo);
public List<AsnIpCfg> getByAsnGroup(@Param("groupId")long groupId,@Param("asnId")long asnNo);
public void deleteByAsnGroup(@Param("groupId")long groupId,@Param("asnId")long asnNo);
}

View File

@@ -206,7 +206,7 @@
from asn_ip_cfg r
where r.cfg_id in (${ids}) and is_valid !=-1
</select>
<select id="getByAsnGroup" resultMap="asnIpCfgMap" parameterType="java.lang.Integer" >
<select id="getByAsnGroup" resultMap="asnIpCfgMap" parameterType="java.lang.Long" >
select
<include refid="columns"></include>
from asn_ip_cfg r where r.is_valid!=-1 and r.asn_ip_group=#{groupId} and r.user_region1=#{asnId}
@@ -399,7 +399,7 @@
<!-- <update id="deleteByAsnGroup" parameterType="java.lang.Integer" >
update asn_ip_cfg set is_valid=-1 where asn_ip_group=#{groupId} and user_region1=#{asnId}
</update> -->
<delete id="deleteByAsnGroup" parameterType="java.lang.Integer" >
<delete id="deleteByAsnGroup" parameterType="java.lang.Long" >
delete from asn_ip_cfg where asn_ip_group=#{groupId} and user_region1=#{asnId}
</delete>
<select id="findOtherIps" resultType="java.lang.Integer" parameterType="java.lang.Integer">
@@ -411,7 +411,7 @@
<select id="countValidIPs" resultType="java.lang.Integer" parameterType="java.lang.String">
select count(1) from asn_ip_cfg where is_valid !=-1 and asn_ip_group in(${groups}) and cfg_id not in(${ids}) GROUP BY asn_ip_group;
</select>
<select id="getInfoByAsnNo" resultType="com.nis.domain.specific.ConfigGroupInfo" parameterType="java.lang.Integer">
<select id="getInfoByAsnNo" resultType="com.nis.domain.specific.ConfigGroupInfo" parameterType="java.lang.Long">
select id,group_id,group_name,is_issued,insert_time,update_time,group_type,compile_id,asn_id
from config_group_info c where c.asn_id= #{asnId} and c.group_type=4
</select>

View File

@@ -12,7 +12,7 @@
<result column="creator_id" property="creatorId" jdbcType="INTEGER" />
<result column="editor_id" property="editorId" jdbcType="INTEGER" />
<result column="service_group_id" property="serviceGroupId" jdbcType="INTEGER" />
<result column="asn_no" property="asnNo" jdbcType="INTEGER" />
<result column="asn_no" property="asnNo" jdbcType="BIGINT" />
<result column="description" property="description" jdbcType="VARCHAR" />
</resultMap>
<sql id="PolicyGroupInfoColumns">

View File

@@ -13,8 +13,10 @@
<result column="crl" property="crl" jdbcType="VARCHAR" />
<result column="issuer" property="issuer" jdbcType="VARCHAR" />
<result column="subject" property="subject" jdbcType="VARCHAR" />
<result column="not_before_time" property="notBeforeTime" jdbcType="TIMESTAMP" />
<result column="not_after_time" property="notAfterTime" jdbcType="TIMESTAMP" />
<result column="not_before_time" property="notBeforeTime" jdbcType="VARCHAR" />
<result column="not_after_time" property="notAfterTime" jdbcType="VARCHAR" />
<result column="cn" property="cn" jdbcType="VARCHAR" />
<result column="alt_name" property="altName" jdbcType="VARCHAR" />
<result column="action" property="action" jdbcType="INTEGER" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
<result column="is_audit" property="isAudit" jdbcType="INTEGER" />
@@ -48,6 +50,8 @@
,r.subject
,r.not_before_time
,r.not_after_time
,r.cn
,r.alt_name
,r.cfg_type,r.action
,r.is_valid,r.is_audit,r.creator_id,r.create_time,r.editor_id
,r.edit_time,r.auditor_id,r.audit_time,r.service_id,r.request_id
@@ -201,6 +205,8 @@
subject,
not_before_time,
not_after_time,
cn,
alt_name,
cfg_type,
compile_Id,
cfg_region_code
@@ -232,8 +238,10 @@
#{crl, jdbcType=VARCHAR},
#{issuer, jdbcType=VARCHAR},
#{subject, jdbcType=VARCHAR},
#{notBeforeTime,jdbcType=TIMESTAMP},
#{notAfterTime,jdbcType=TIMESTAMP},
#{notBeforeTime,jdbcType=VARCHAR},
#{notAfterTime,jdbcType=VARCHAR},
#{cn,jdbcType=VARCHAR},
#{altName,jdbcType=VARCHAR},
#{cfgType,jdbcType=VARCHAR},
#{compileId,jdbcType=INTEGER},
#{cfgRegionCode,jdbcType=INTEGER}
@@ -301,10 +309,10 @@
<if test="keyringType != null" >
keyring_type = #{keyringType,jdbcType=VARCHAR},
</if>
<if test="privateKeyFile != null" >
<if test="privateKeyFile != null and privateKeyFile !=''" >
private_key_file = #{privateKeyFile,jdbcType=VARCHAR},
</if>
<if test="publicKeyFile != null" >
<if test="publicKeyFile != null and publicKeyFile !=''" >
public_key_file = #{publicKeyFile,jdbcType=VARCHAR},
</if>
<if test="expireAfter != null" >
@@ -313,8 +321,26 @@
<if test="publicKeyAlgo != null" >
public_key_algo = #{publicKeyAlgo,jdbcType=VARCHAR},
</if>
<if test="crl != null" >
<if test="crl != null and crl !=''" >
crl = #{crl,jdbcType=VARCHAR},
</if>
<if test="issuer != null and issuer !=''" >
issuer = #{issuer,jdbcType=VARCHAR},
</if>
<if test="subject != null and subject !=''" >
subject = #{subject,jdbcType=VARCHAR},
</if>
<if test="notBeforeTime != null and notBeforeTime !=''" >
not_before_time = #{notBeforeTime,jdbcType=VARCHAR},
</if>
<if test="notAfterTime != null and notAfterTime !=''" >
not_after_time = #{notAfterTime,jdbcType=VARCHAR},
</if>
<if test="cn != null and cn !=''" >
cn = #{cn,jdbcType=VARCHAR},
</if>
<if test="altName != null and altName !=''" >
alt_name = #{altName,jdbcType=VARCHAR},
</if>
</trim>
</set>

View File

@@ -282,9 +282,9 @@
<if test="httpReqBody!=null">
AND a.compile_id in (select f.compile_id from http_body_cfg f
<where>
and cfg_type='NTC_HTTP_REQ_BODY'
AND f.cfg_type = #{httpReqBody.cfgType}
<if test="httpReqBody.cfgKeywords != null and httpReqBody.cfgKeywords != ''">
and REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpReqBody.cfgKeywords,jdbcType=VARCHAR}),'%')
AND REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpReqBody.cfgKeywords,jdbcType=VARCHAR}),'%')
</if>
</where>
@@ -293,9 +293,9 @@
<if test="httpResBody!=null">
AND a.compile_id in (select f.compile_id from http_body_cfg f
<where>
and cfg_type='NTC_HTTP_RES_BODY'
AND f.cfg_type = #{httpResBody.cfgType}
<if test="httpResBody.cfgKeywords != null and httpResBody.cfgKeywords != ''">
and REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpResBody.cfgKeywords,jdbcType=VARCHAR}),'%')
AND REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpResBody.cfgKeywords,jdbcType=VARCHAR}),'%')
</if>
</where>
@@ -304,8 +304,9 @@
<if test="httpReqHdr!=null">
AND a.compile_id in (select f.compile_id from http_req_head_cfg f
<where>
AND f.cfg_type = #{httpReqHdr.cfgType}
<if test="httpReqHdr.cfgKeywords != null and httpReqHdr.cfgKeywords != ''">
REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpReqHdr.cfgKeywords,jdbcType=VARCHAR}),'%')
AND REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpReqHdr.cfgKeywords,jdbcType=VARCHAR}),'%')
</if>
</where>
)
@@ -313,8 +314,9 @@
<if test="httpResHdr!=null">
AND a.compile_id in (select f.compile_id from http_res_head_cfg f
<where>
AND f.cfg_type = #{httpResHdr.cfgType}
<if test="httpResHdr.cfgKeywords != null and httpResHdr.cfgKeywords != ''">
REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpResHdr.cfgKeywords,jdbcType=VARCHAR}),'%')
AND REPLACE(f.cfg_keywords,'***and***','|') like concat(concat('%',#{httpResHdr.cfgKeywords,jdbcType=VARCHAR}),'%')
</if>
</where>
)

View File

@@ -60,15 +60,6 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void save(List<AsnIpCfg> entitys){
Date createTime=new Date();
List<Integer> idList=ConfigServiceUtil.getId(3, entitys.size());
int index=0;
for(AsnIpCfg entity:entitys) {
entity.setCreateTime(createTime);
entity.setCreatorId(entity.getCurrentUser().getId());
entity.setRegionId(idList.get(index));
index++;
}
this.saveBatch(entitys, AsnIpCfgDao.class);
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
@@ -88,28 +79,32 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnIpBatch(Map<String,List<AsnIpCfg>> cfgs) {
public void saveAsnIpBatch(Map<String,List<AsnIpCfg>> cfgs,int total) {
List<AsnIpCfg> toDelAsnIpCfgs=Lists.newArrayList();
List<AsnIpCfg> toSaveAsnIpCfgs=Lists.newArrayList();
List<SysDataDictionaryItem> isImportAll=DictUtils.getDictList("IS_ASN_IP_IMPORT_ALL");
List<Integer> idList=ConfigServiceUtil.getId(3, total);
int ind=0;
for(Entry<String,List<AsnIpCfg>> entry:cfgs.entrySet()) {
Integer asnNo=Integer.parseInt(entry.getKey());
Long asnNo=Long.parseLong(entry.getKey());
ConfigGroupInfo configGroupInfo=this.getConfigGroupInfoByAsnNo(asnNo);
if(configGroupInfo==null) {//不存在则新增
PolicyGroupInfo info=new PolicyGroupInfo();
info.setAsnNo(Integer.parseInt(entry.getKey()));
info.setAsnNo(Long.parseLong(entry.getKey()));
info.setDescription("Create by import excel");
info.setGroupName("Import"+asnNo);
info.setGroupType(4);
this.saveAsnGroup(info);
configGroupInfo=this.getConfigGroupInfoByAsnNo(asnNo);
configGroupInfo=this.saveAsnGroup(info);
}
for(AsnIpCfg cfg:entry.getValue()) {
cfg.setAsnIpGroup(configGroupInfo.getGroupId());
cfg.setRegionId(idList.get(ind));
if(configGroupInfo.getIsIssued()==0)
cfg.setIsValid(Constants.VALID_NO);
else
else {
cfg.setIsValid(Constants.VALID_YES);
}
ind++;
}
if(isImportAll.get(0).getItemCode().equals("1")) {//全量下发,删除已有的
if(configGroupInfo.getIsIssued()==1) {//已下发
@@ -166,8 +161,9 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnGroup(PolicyGroupInfo entity) throws MaatConvertException{
public ConfigGroupInfo saveAsnGroup(PolicyGroupInfo entity) throws MaatConvertException{
entity.setIsValid(1);
ConfigGroupInfo group=new ConfigGroupInfo();
//新增
Date createTime=new Date();
entity.setCreatorId(UserUtils.getUser().getId());
@@ -183,7 +179,6 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
entity.setServiceGroupId(serviceGroupId);
//新增协议分组
ConfigGroupInfo group = new ConfigGroupInfo();
group.setGroupId(serviceGroupId);
group.setGroupName(entity.getGroupName());
group.setIsIssued(0);
@@ -192,7 +187,7 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
specificServiceCfgDao.insertConfigGroupInfo(group);
policyGroupInfoDao.insert(entity);
}
return group;
}
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
public void saveAsnIpCfg(CfgIndexInfo entity) {
@@ -201,6 +196,8 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
if(groupInfo==null) {
throw new RuntimeException("ConfigGroupInfo is null!");
}
List<Integer> idList=ConfigServiceUtil.getId(3, entity.getAsnIpCfgs().size());
int index=0;
if(groupInfo.getIsIssued()==1) {//如果已经下发,则需要下到综合服务中
if(entity.getAsnIpCfgs()!=null) {
for(AsnIpCfg cfg:entity.getAsnIpCfgs()) {
@@ -214,6 +211,8 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
cfg.setCreatorId(entity.getCurrentUser().getId());
cfg.setAsnIpGroup(entity.getAsnIpGroup());
cfg.setIsValid(Constants.VALID_YES);
cfg.setRegionId(idList.get(index));
index++;
}
}
this.save(entity.getAsnIpCfgs());
@@ -226,6 +225,8 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
cfg.setCreatorId(entity.getCurrentUser().getId());
cfg.setAsnIpGroup(entity.getAsnIpGroup().intValue());
cfg.setIsValid(Constants.VALID_NO);
cfg.setRegionId(idList.get(index));
index++;
}
}
this.save(entity.getAsnIpCfgs());
@@ -281,19 +282,19 @@ public class AsnIpCfgService extends CrudService<CrudDao<AsnIpCfg>, AsnIpCfg> {
}
return false;
}
public ConfigGroupInfo getConfigGroupInfoByAsnNo(Integer asnNo) {
public ConfigGroupInfo getConfigGroupInfoByAsnNo(Long asnNo) {
return asnIpCfgDao.getInfoByAsnNo(asnNo);
}
public List<AsnIpCfg> getByAsnGroup(Integer groupId,Integer asnNo) {
public List<AsnIpCfg> getByAsnGroup(Integer groupId,Long asnNo) {
if(groupId==null||asnNo==null) {
throw new RuntimeException("groupId or asnNo is null!");
}
return asnIpCfgDao.getByAsnGroup(groupId,asnNo);
return asnIpCfgDao.getByAsnGroup(groupId.longValue(),asnNo.longValue());
}
public void deleteByAsnGroup(Integer groupId,Integer asnNo) {
public void deleteByAsnGroup(Integer groupId,Long asnNo) {
if(groupId==null||asnNo==null) {
throw new RuntimeException("groupId or asnNo is null!");
}
asnIpCfgDao.deleteByAsnGroup(groupId,asnNo);
asnIpCfgDao.deleteByAsnGroup(groupId.longValue(),asnNo.longValue());
}
}

View File

@@ -25,6 +25,7 @@ import com.nis.domain.configuration.AppTcpCfg;
import com.nis.domain.configuration.AppTopicDomainCfg;
import com.nis.domain.configuration.AreaIpCfg;
import com.nis.domain.configuration.BaseIpCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.configuration.NtcSubscribeIdCfg;
@@ -512,7 +513,15 @@ public class AppCfgService extends BaseService {
}
}
@Transactional(readOnly = false, rollbackFor = RuntimeException.class)
public void saveAppDomainCfg(List<BaseStringCfg<?>> cfgs) throws Exception {
for(BaseStringCfg cfg:cfgs) {
AppDomainCfg entity=new AppDomainCfg();
BeanUtils.copyProperties(cfg, entity);
appCfgDao.insertAppDomainCfg(entity);
}
}
@Transactional(readOnly = false, rollbackFor = RuntimeException.class)
public void saveOrUpdateAppDomainCfg(AppDomainCfg entity) throws Exception {
// 设置区域运营商信息

View File

@@ -100,6 +100,19 @@ public class HttpRedirectCfgService extends CrudService<WebsiteCfgDao,CfgIndexIn
// 生成数据权限过滤条件dsf为dataScopeFilter的简写在xml中使用 ${sqlMap.dsf}调用权限SQL
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
entity.setPage(page);
// 设置cfg_type,用于列表检索时区分
if(entity.getHttpReqHdr() != null){
entity.getHttpReqHdr().setCfgType(Constants.HTTP_REDIRECT_REQ_HEAD_REGION);
}
if(entity.getHttpReqBody() != null){
entity.getHttpReqBody().setCfgType(Constants.HTTP_REDIRECT_REQ_BODY_REGION);
}
if(entity.getHttpResHdr() != null){
entity.getHttpResHdr().setCfgType(Constants.HTTP_REDIRECT_RES_HEAD_REGION);
}
if(entity.getHttpResBody() != null){
entity.getHttpResBody().setCfgType(Constants.HTTP_REDIRECT_RES_BODY_REGION);
}
List<CfgIndexInfo> list = websiteCfgDao.getWebsiteList(entity);
page.setList(list);
return page;

View File

@@ -161,6 +161,19 @@ public class WebsiteCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo> {
// 生成数据权限过滤条件dsf为dataScopeFilter的简写在xml中使用 ${sqlMap.dsf}调用权限SQL
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"a"));
entity.setPage(page);
// 设置cfg_type,用于列表检索时区分
if(entity.getHttpReqHdr() != null){
entity.getHttpReqHdr().setCfgType(Constants.HTTP_REQ_HEAD_REGION);
}
if(entity.getHttpReqBody() != null){
entity.getHttpReqBody().setCfgType(Constants.HTTP_REQ_BODY_REGION);
}
if(entity.getHttpResHdr() != null){
entity.getHttpResHdr().setCfgType(Constants.HTTP_RES_HEAD_REGION);
}
if(entity.getHttpResBody() != null){
entity.getHttpResBody().setCfgType(Constants.HTTP_RES_BODY_REGION);
}
List<CfgIndexInfo> list = websiteCfgDao.getWebsiteList(entity);
page.setList(list);
return page;

View File

@@ -1321,4 +1321,11 @@ ethernet=Ethernet
http_req_body_keywords=Request Body Keyword
http_res_body_keywords=Response Body Keyword
http_req_hdr_keywords=Request Header Keyword
http_res_hdr_keywords=Response Header Keyword
http_res_hdr_keywords=Response Header Keyword
traffic_user_behavior=Traffic Account Behavior
user_behavior_data=Account statistics
ip_behavior_data=IP statistics
p2p_eMule_keywords=eMule Search Keywords
p2p_hash_keywords=File Marking Keywords
not_valid_domain=%s is not a valid domain
cert_not_match_domain=Domain and certificate information do not match!

File diff suppressed because it is too large Load Diff

View File

@@ -1313,4 +1313,9 @@ http_res_body_keywords=\u5E94\u7B54\u5185\u5BB9\u5173\u952E\u5B57
http_req_hdr_keywords=\u8BF7\u6C42\u5934\u57DF\u5173\u952E\u5B57
http_res_hdr_keywords=\u5E94\u7B54\u5934\u57DF\u5173\u952E\u5B57
p2p_eMule_keywords=eMule\u641C\u7D22\u5173\u952E\u5B57
p2p_hash_keywords=\u6587\u4EF6\u6807\u8BC6\u5173\u952E\u5B57
p2p_hash_keywords=\u6587\u4EF6\u6807\u8BC6\u5173\u952E\u5B57
traffic_user_behavior=\u7528\u6237\u884C\u4E3A\u7EDF\u8BA1
user_behavior_data=\u7528\u6237\u7EDF\u8BA1
ip_behavior_data=\u7528\u6237IP\u7EDF\u8BA1
not_valid_domain=%s\u4E0D\u662F\u4E00\u4E2A\u5408\u6CD5\u57DF\u540D
cert_not_match_domain=\u57DF\u540D\u4E0E\u6240\u9009\u8BC1\u4E66\u4FE1\u606F\u4E0D\u7B26\u5408\uFF01

View File

@@ -286,6 +286,7 @@ trafficTopicAndDomainChart=trafficTopicAndDomainChart
ntcTotalReport=ntcTotalReport
trafficIpActiveFiveMinute=trafficIpActiveFiveMinute
trafficIpActiveOneHour=trafficIpActiveOneHour
ntcRadiusReport=ntcRadiusReport
client_connect_timeout=300000
client_read_timeout=300000
@@ -530,15 +531,17 @@ area_tag=location
isp_tag=isp
mmFileDigestLog=mmFileDigestLogs
ntcStreamMediaLog=ntcStreamMediaLogs
#音视频样例限制时长,单位秒
#\u97f3\u89c6\u9891\u6837\u4f8b\u9650\u5236\u65f6\u957f\uff0c\u5355\u4f4d\u79d2
av_duration_limit=120
video_to_picture_proc=/root/code/shot_detect/shot_detect
#证书文件路径
#\u8bc1\u4e66\u6587\u4ef6\u8def\u5f84
cert_file_path=/home/cert/
#证书校验工具名称
#\u8bc1\u4e66\u6821\u9a8c\u5de5\u5177\u540d\u79f0
cert_validate_file=x509
#证书校验成功的关键信息
#\u8bc1\u4e66\u6821\u9a8c\u6210\u529f\u7684\u5173\u952e\u4fe1\u606f
cert_validate_success_info=Successful
#ipv4 range新格式0.0.0.1-2
#ipv4 range\u65b0\u683c\u5f0f0.0.0.1-2
ipv4_ip_range_regexp_new=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$
ipv4_ip_subnet_regexp_original=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[0-9]|2[0-9]|[0-9])$
ipv4_ip_subnet_regexp_original=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|1[0-9]|2[0-9]|[0-9])$
#域名验证正则
domain_regexp=^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$

Binary file not shown.

View File

@@ -0,0 +1,4 @@
ALTER TABLE pxy_obj_keyring ADD cn varchar(400) DEFAULT null COMMENT 'CN<EFBFBD><EFBFBD>Ϣ';
ALTER TABLE pxy_obj_keyring ADD alt_name varchar(4000) DEFAULT null COMMENT 'SAN<EFBFBD><EFBFBD>Ϣ';
alter table pxy_obj_keyring modify column not_before_time varchar(40);
alter table pxy_obj_keyring modify column not_after_time varchar(40);

View File

@@ -0,0 +1,2 @@
ALTER TABLE config_group_info MODIFY COLUMN asn_id BIGINT(20) NULL COMMENT 'asn 组对应的asn号';
ALTER TABLE policy_group_info MODIFY COLUMN asn_no BIGINT(20) NULL COMMENT 'asn号';

View File

@@ -0,0 +1,2 @@
UPDATE function_region_dict SET config_ip_port_show = '1' WHERE function_id = 300 AND dict_id = 68;
UPDATE function_region_dict SET config_ip_port_show = '3,4' WHERE function_id = 304 AND dict_id = 232;

View File

@@ -0,0 +1,2 @@
UPDATE function_region_dict SET is_import=1 WHERE function_id=403 AND is_valid=1;
UPDATE function_service_dict SET is_import=1 WHERE function_id=403 AND is_valid=1;

View File

@@ -104,7 +104,7 @@ $(function(){
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="asn_no"/></label>
<div class="col-md-6">
<input id="asnNo" class="form-control required asnNoUnique number" type="text" name="asnNo" value="${_cfg.asnNo}" autocomplete="off" maxlength="20" ctx="${ctx }">
<input id="asnNo" class="form-control required asnNoUnique number" type="text" name="asnNo" value="${_cfg.asnNo}" autocomplete="off" maxlength="15" ctx="${ctx }">
</div>
<div for="asnNo"></div>
</div>

View File

@@ -271,7 +271,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -53,6 +53,23 @@
onClick="javascript:window.location='${ctx}/app/domainCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
<c:set var="serviceImport" value="false"></c:set>
<c:set var="regionImport" value="false"></c:set>
<c:forEach items="${serviceList}" var="service" >
<c:if test="${(cfg.functionId eq service.functionId) && service.isImport eq 1}">
<c:set var="serviceImport" value="true"></c:set>
</c:if>
</c:forEach>
<c:forEach items="${regionList}" var="region" >
<c:if test="${(cfg.functionId eq region.functionId) && region.isImport eq 1}">
<c:set var="regionImport" value="true"></c:set>
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
</shiro:hasPermission>
</div>
@@ -272,7 +289,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
@@ -440,6 +457,8 @@
</div>
</div>
</div>
<c:set var="importPath" value="/app/domainCfgList?functionId=${cfg.functionId}"/>
<!-- 模板导入start -->
<%@include file="/WEB-INF/include/excel/importModal.jsp" %>
</body>
</html>

View File

@@ -324,7 +324,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -290,7 +290,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -355,7 +355,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -272,7 +272,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -252,7 +252,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -277,7 +277,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}" />
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -358,7 +358,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -355,7 +355,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -28,6 +28,10 @@
$(".ratelimitAction").find("input[name='userRegion1']").on("change",function(){
switchRateLimitType();
});
$(".monitAction").find("select[name='userRegion1']").on("change",function(){
selectCert(this);
});
selectCert();
$("#cfgFrom").validate(
{
errorPlacement : function(error, element) {
@@ -39,6 +43,12 @@
submitHandler : function(form) {
var flag = true;
var actionValue=$("input[name=action]:checked").val();
flag=validDomain(actionValue);
if(!flag){
return;
}
//代表所有业务都隐藏了,提示必须增加一种业务数据
if($(".boxSolid").length ==$(".boxSolid.hidden").length){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
@@ -130,6 +140,92 @@
$(".boxSolid").prev(".form-section:visible").eq(0).next(".boxSolid").find("span[title=remove]").addClass("hidden");
}
}
//实体证书提示域名信息
var selectCert=function(){
var cert=$(".monitAction").find("select[name='userRegion1']").val();
var keyringType=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("keyringType");
if(cert != '' && keyringType == 'end-entity'){
var san=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("san");
var cn=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("cn");
if(san.indexOf(cn) > -1){
$("#certDomain").attr("title",san);
}else{
$("#certDomain").attr("title",san+""+cn);
}
$("#certDomain").removeClass("hidden");
}else{
$("#certDomain").addClass("hidden");
}
}
var validDomain=function(actionValue){
var flag=false;
if(actionValue == 1){
var cert=$(".monitAction").find("select[name='userRegion1']").val();
var keyringType=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("keyringType");
if(cert != '' && keyringType == 'end-entity'){
var cn=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("cn");
var cnReg = new RegExp('^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\'+cn.replace("*","")+')+$');
var san=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("san");
if(cn.trim() =='' && san.trim() ==''){
flag=false;
}else{
$("input[name$='cfgRegionCode'").each(function(){
var serviceType=$(this).attr("serviceType");
var prefixName=$(this).attr("name").split("cfgRegionCode")[0];
if(serviceType == "intercept_domain"){
var domain=$("input[name='"+prefixName+"cfgKeywords']").val();
var domain=domain.trim();
if(!flag){
for (var i=0;i<san.split(",").length;i++) {
if(san.split(",")[i] != null && san.split(",")[i] != '' && san.split(",")[i].trim() !=''){
if(flag){
break;
}
var sanStr=san.split(",")[i].trim();
if(sanStr.indexOf("*") >-1){
var sanReg= new RegExp('^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\'+sanStr.replace("*","")+')+$');
if(sanReg.exec(domain) != null){
flag=true;
}
}else{
if(sanStr == domain){ //完全匹配
flag=true;
}
}
}
}
if(!flag){
if(cn.indexOf("*") > -1){
if(cnReg.exec(domain) != null){
flag=true;
}
}else{
if(cn == domain){ //完全匹配
flag=true;
}
}
}
}else{
flag=true;
}
}
});
}
}else{
flag=true;
}
}else{
flag=true;
}
if(!flag){
$(".monitAction").find("div[for='userRegion1']").html("<label class='error'>"+$("#certNotMatchDomain").text()+"</label>");
}else{
$(".monitAction").find("div[for='userRegion1']").html("");
}
return flag;
}
</script>
</head>
<body>
@@ -145,6 +241,8 @@
</c:if>
<span id="keywordError" style="display:none"><spring:message code="required"></spring:message></span>
<span id="tagsinputTip" style="display:none"><spring:message code="multiple_keywords_tip"></spring:message></span>
<span id="certNotMatchDomain" style="display:none"><spring:message code="cert_not_match_domain"></spring:message></span>
<!-- Domain and certificate information do not match! -->
<div class="page-content">
<h3 class="page-title">
<spring:message code="${_cfg.menuNameCode}"></spring:message>
@@ -277,10 +375,23 @@
<select name="userRegion1" class="selectpicker show-tick form-control">
<option value="" <c:if test="${empty _cfg.userRegion1}">selected</c:if> ><spring:message code="selected"/></option>
<c:forEach items="${certificateList}" var="certificate">
<option value="${certificate.compileId}" <c:if test="${_cfg.userRegion1 eq fn:trim(certificate.compileId)}">selected</c:if>>${certificate.cfgDesc}</option>
<option value="${certificate.compileId}"
cn="${certificate.cn}"
san="${certificate.altName}"
keyringType="${certificate.keyringType}"
<c:if test="${_cfg.userRegion1 eq fn:trim(certificate.compileId)}">
selected
</c:if>
>
${certificate.cfgDesc}
</option>
</c:forEach>
</select>
</div>
&nbsp;<span id="certDomain" title=""
class="hidden" data-icon="&#xe08b;" style="cursor:default"></span>
<div for="userRegion1"></div>
</div>
</div>
</div>

View File

@@ -163,12 +163,11 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="compileId"><spring:message code="cfg_id"></spring:message></form:option>
<%-- <form:option value="voipIp.srcIpAddress"><spring:message code="client_ip"/></form:option>
<form:option value="voipIp.srcPort"><spring:message code="client_port"/></form:option>
<form:option value="voipAccount.district"><spring:message code="strong_string"/></form:option> --%>
<form:option value="ipPort.srcIpAddress"><spring:message code="clientip"></spring:message></form:option>
<form:option value="ipPort.destIpAddress"><spring:message code="serverip"></spring:message></form:option>
<form:option value="interceptPktBin.cfgKeywords"><spring:message code="key_word"/></form:option>
<c:if test="${cfg.functionId eq 212}">
<form:option value="interceptPktBin.cfgKeywords"><spring:message code="keywords"/></form:option>
</c:if>
<form:option value="action"><spring:message code="block_type"></spring:message></form:option>
<form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option>
</form:select>
@@ -354,7 +353,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -5,8 +5,6 @@
<title><spring:message code="${cfgName}"></spring:message></title>
<script type="text/javascript">
$(function(){
//$("select[name='protocol']").parents(".form-group").addClass("hidden");
$("select[name='direction']").parents(".form-group").addClass("hidden");
if('${fn:length(serviceList)}'>1){
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId"));
@@ -135,7 +133,6 @@ $(function(){
</div>
</c:if>
</div>
<%--@include file="/WEB-INF/include/form/complexIpInfo.jsp" --%>
<div class="row ipInfo">
<div class="row">
<div class="col-md-6">
@@ -158,9 +155,38 @@ $(function(){
<div for="ipType"></div>
</div>
</div>
<div class="col-md-6 hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="protocol" /></label>
<div class="col-md-6">
<select name="protocol"
class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('PROTOCOL')}" var="protocolC">
<option value="${protocolC.itemCode}" <c:if test="${_cfg.protocol==protocolC.itemCode || (_cfg.protocol==null && protocolC.itemCode==0)}">selected</c:if>><spring:message code="${protocolC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="protocol"></div>
</div>
</div>
</div>
<div class="row ip">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip_pattern"/></label>
<div class="col-md-6">
<select name="ipPattern" class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('IP_PATTERN')}" var="ipPatternC">
<option value="${ipPatternC.itemCode}" <c:if test="${_cfg.ipPattern==ipPatternC.itemCode || (_cfg.ipPattern==null && ipPatternC.itemCode==3)}">selected</c:if>><spring:message code="${ipPatternC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="ipPattern"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip"/></label>
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="client_ip"/></label>
<div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="srcIpAddress" value="${_cfg.srcIpAddress}">
</div>
@@ -175,26 +201,10 @@ $(function(){
</div>
<div for="destIpAddress"></div>
</div>
</div>
</div>
</div>
<div class="row ip">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip_pattern"/></label>
<div class="col-md-6">
<select name="ipPattern" class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('IP_PATTERN')}" var="ipPatternC">
<option value="${ipPatternC.itemCode}" <c:if test="${_cfg.ipPattern==ipPatternC.itemCode || (_cfg.ipPattern==null && ipPatternC.itemCode==3)}">selected</c:if>><spring:message code="${ipPatternC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="ipPattern"></div>
</div>
</div>
</div>
<div class="row hidden port">
<div class="col-md-6 hidden">
<div class="row port">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="port_pattern"/></label>
<div class="col-md-6">
@@ -207,8 +217,8 @@ $(function(){
<div for="portPattern"></div>
</div>
</div>
<div class="col-md-6 hidden">
<div class="form-group ">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="client_port"/></label>
<div class="col-md-6">
<input class="form-control required portCheck" type="text" name="srcPort" value="${_cfg.srcPort}">
@@ -216,33 +226,7 @@ $(function(){
<div for="srcPort"></div>
</div>
</div>
</div>
<div class="row destPort">
<%-- <div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_ip"/></label>
<div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="destIpAddress" value="${_cfg.destIpAddress}">
</div>
<div for="destIpAddress"></div>
</div>
</div> --%>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="protocol" /></label>
<div class="col-md-6">
<select name="protocol"
class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('PROTOCOL')}" var="protocolC">
<option value="${protocolC.itemCode}" <c:if test="${_cfg.protocol==protocolC.itemCode || (_cfg.protocol==null && protocolC.itemCode==0)}">selected</c:if>><spring:message code="${protocolC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="protocol"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_port"/></label>
<div class="col-md-6">
@@ -252,29 +236,32 @@ $(function(){
</div>
</div>
</div>
<div class="row protocol ">
<%-- <div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="protocol" /></label>
<div class="col-md-6">
<select name="protocol"
class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('PROTOCOL')}" var="protocolC">
<option value="${protocolC.itemCode}" <c:if test="${_cfg.protocol==protocolC.itemCode || (_cfg.protocol==null && protocolC.itemCode==0)}">selected</c:if>><spring:message code="${protocolC.itemValue}"/></option>
</c:forEach>
</select>
</div>
<div for="protocol"></div>
</div>
</div> --%>
<%-- <div class="row destPort">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_ip"/></label>
<div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="destIpAddress" value="${_cfg.destIpAddress}">
</div>
<div for="destIpAddress"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_port"/></label>
<div class="col-md-6">
<input class="form-control required portCheck" type="text" name="destPort" value="${_cfg.destPort}">
</div>
<div for="destPort"></div>
</div>
</div>
</div> --%>
<div class="row protocol">
<div class="col-md-6">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="direction" /></label>
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="direction" /></label>
<div class="col-md-6">
<select name="direction"
class="selectpicker show-tick form-control required">
<select name="direction" class="selectpicker show-tick form-control required">
<c:forEach items="${fns:getDictList('DIRECTION')}" var="directionC">
<option value="${directionC.itemCode}"><spring:message code="${directionC.itemValue}"/></option>
</c:forEach>
@@ -284,16 +271,9 @@ $(function(){
</div>
</div>
</div>
<%-- <div class="row">
<button type="button" class="btn btn-red-hollow center-block"
onClick="more(this);" data-click-times="0">
<spring:message code="show_more" />
</button>
</div> --%>
<br>
</div>
<div class="row ipmulitiplex">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ir_type"/></label>

View File

@@ -60,7 +60,7 @@
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}/manipulation/ipmulitiplex/dnatPolicyList?functionId=${cfg.functionId}" method="post" class="form-search">
<input id="functionId" name="functionId" type="hidden" value="${cfg.functionId}"/>
<input id="audit" name="audit" type="hidden" value="${audit}"/>

View File

@@ -142,7 +142,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}" />
<sys:message content="${message}" type="${messageTypes }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -5,8 +5,6 @@
<title><spring:message code="${cfgName}"></spring:message></title>
<script type="text/javascript">
$(function(){
$("select[name='protocol']").parents(".form-group").addClass("hidden");
$("select[name='direction']").parents(".form-group").addClass("hidden");
if('${fn:length(serviceList)}'>1){
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#protocolId").val($(".action:checked").attr("protocolId"));
@@ -140,7 +138,6 @@ $(function(){
</div>
</c:if>
</div>
<%--@include file="/WEB-INF/include/form/complexIpInfo.jsp" --%>
<div class="row ipInfo">
<div class="row">
<div class="col-md-6">
@@ -164,17 +161,6 @@ $(function(){
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="client_ip"/></label>
<div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="srcIpAddress" value="${_cfg.srcIpAddress}">
</div>
<div for="srcIpAddress"></div>
</div>
</div>
</div>
<div class="row ip">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ip_pattern"/></label>
<div class="col-md-6">
@@ -187,9 +173,33 @@ $(function(){
<div for="ipPattern"></div>
</div>
</div>
</div>
<div class="row hidden port">
<div class="row ip">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="client_ip"/></label>
<div class="col-md-6">
<input class="form-control required ipCheck" type="text" name="srcIpAddress" value="${_cfg.srcIpAddress}">
</div>
<div for="srcIpAddress"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="area"/></label>
<div class="col-md-6">
<select id="areaEffectiveIds" name="areaEffectiveIds" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search" >
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${areas}" var="area">
<option value="${area.itemCode}" <c:if test="${_cfg.areaEffectiveIds == area.itemCode }">selected</c:if> >${area.itemValue}</option>
</c:forEach>
</select>
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
<div class="row port">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="port_pattern"/></label>
@@ -203,7 +213,7 @@ $(function(){
<div for="portPattern"></div>
</div>
</div>
<div class="col-md-6 hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="client_port"/></label>
<div class="col-md-6">
@@ -213,7 +223,7 @@ $(function(){
</div>
</div>
</div>
<div class="row hidden destPort">
<div class="row destPort">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="server_ip"/></label>
@@ -233,9 +243,9 @@ $(function(){
</div>
</div>
</div>
<div class="row hidden protocol ">
<div class="row hidden protocol">
<div class="col-md-6">
<div class="form-group ">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="protocol" /></label>
<div class="col-md-6">
@@ -265,32 +275,9 @@ $(function(){
</div>
</div>
</div>
<%-- <div class="row">
<button type="button" class="btn btn-red-hollow center-block"
onClick="more(this);" data-click-times="0">
<spring:message code="show_more" />
</button>
</div> --%>
<div class="row">
<div class="col-md-6">
<div class="form-group hidden">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="area"/></label>
<div class="col-md-6">
<select id="areaEffectiveIds" name="areaEffectiveIds" class="selectpicker show-tick form-control required" data-live-search="true" data-live-search-placeholder="search" >
<option value="" ><spring:message code="select"/></option>
<c:forEach items="${areas}" var="area">
<option value="${area.itemCode}" <c:if test="${_cfg.areaEffectiveIds == area.itemCode }">selected</c:if> >${area.itemValue}</option>
</c:forEach>
</select>
</div>
<div for="areaEffectiveIds"></div>
</div>
</div>
</div>
<br>
</div>
<div class="row ipmulitiplex">
<div class="col-md-6 hidden">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font><spring:message code="ir_type"/></label>
@@ -315,7 +302,6 @@ $(function(){
</div>
<div for="ratelimit"></div>
</div>
</div>
</div>
<%@include file="/WEB-INF/include/form/basicInfo.jsp" %>

View File

@@ -60,7 +60,7 @@
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageTypes }"/>
<form:form id="searchForm" modelAttribute="cfg" action="${ctx}/manipulation/ipmulitiplex/snatPolicyList?functionId=${cfg.functionId}" method="post" class="form-search">
<input id="functionId" name="functionId" type="hidden" value="${cfg.functionId}"/>
<input id="audit" name="audit" type="hidden" value="${audit}"/>

View File

@@ -317,7 +317,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -11,6 +11,18 @@
$("#intype").val("${cfg.cfgDesc}");
}else if("${cfg.compileId}"){
$("#intype").val("${cfg.compileId}");
}else if("${cfg.ipPort.srcIpAddress}"){
$("#intype").val("${cfg.ipPort.srcIpAddress}");
}else if("${cfg.ipPort.destIpAddress}"){
$("#intype").val("${cfg.ipPort.destIpAddress}");
}else if("${cfg.httpReqHdr.cfgKeywords}"){
$("#intype").val("${cfg.httpReqHdr.cfgKeywords}");
}else if("${cfg.httpResHdr.cfgKeywords}"){
$("#intype").val("${cfg.httpResHdr.cfgKeywords}");
}else if("${cfg.httpReqBody.cfgKeywords}"){
$("#intype").val("${cfg.httpReqBody.cfgKeywords}");
}else if("${cfg.httpResBody.cfgKeywords}"){
$("#intype").val("${cfg.httpResBody.cfgKeywords}");
}else{
$("#intype").attr("placeholder","<spring:message code='input'/> "+$("#seltype").find("option:selected").text());
}
@@ -319,10 +331,18 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="compileId"><spring:message code="cfg_id"></spring:message></form:option>
<%-- <form:option value="voipIp.srcIpAddress"><spring:message code="client_ip"/></form:option>
<form:option value="voipIp.srcPort"><spring:message code="client_port"/></form:option>
<form:option value="voipAccount.cfgKeywords"><spring:message code="key_word"/></form:option>
<form:option value="voipAccount.district"><spring:message code="strong_string"/></form:option> --%>
<form:option value="ipPort.srcIpAddress"><spring:message code="clientip"></spring:message></form:option>
<form:option value="ipPort.destIpAddress"><spring:message code="serverip"></spring:message></form:option>
<form:option value="httpReqHdr.cfgKeywords"><spring:message code="http_req_hdr_keywords"></spring:message></form:option>
<c:if test="${cfg.functionId ne 211}">
<c:if test="${cfg.functionId ne 209}">
<form:option value="httpReqBody.cfgKeywords"><spring:message code="http_req_body_keywords"></spring:message></form:option>
</c:if>
<form:option value="httpResHdr.cfgKeywords"><spring:message code="http_res_hdr_keywords"></spring:message></form:option>
<c:if test="${cfg.functionId ne 208 && cfg.functionId ne 209}">
<form:option value="httpResBody.cfgKeywords"><spring:message code="http_res_body_keywords"></spring:message></form:option>
</c:if>
</c:if>
<form:option value="action"><spring:message code="block_type"></spring:message></form:option>
<form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option>
</form:select>

View File

@@ -263,7 +263,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}" />
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">

View File

@@ -306,13 +306,15 @@
<form:select path="seltype" class="selectpicker select2 input-small" >
<form:option value="cfgDesc"><spring:message code="config_describe"></spring:message></form:option>
<form:option value="compileId"><spring:message code="cfg_id"></spring:message></form:option>
<c:if test="${cfg.functionId eq '8'}">
<c:if test="${cfg.functionId eq 8}">
<form:option value="ipPort.srcIpAddress"><spring:message code="clientip"></spring:message></form:option>
<form:option value="ipPort.destIpAddress"><spring:message code="serverip"></spring:message></form:option>
<form:option value="httpReqHdr.cfgKeywords"><spring:message code="http_req_hdr_keywords"></spring:message></form:option>
<form:option value="httpResHdr.cfgKeywords"><spring:message code="http_res_hdr_keywords"></spring:message></form:option>
</c:if>
<form:option value="httpReqBody.cfgKeywords"><spring:message code="http_req_body_keywords"></spring:message></form:option>
<c:if test="${cfg.functionId eq 8}">
<form:option value="httpResHdr.cfgKeywords"><spring:message code="http_res_hdr_keywords"></spring:message></form:option>
</c:if>
<form:option value="httpResBody.cfgKeywords"><spring:message code="http_res_body_keywords"></spring:message></form:option>
<form:option value="action"><spring:message code="block_type"></spring:message></form:option>
<form:option value="isValid"><spring:message code="valid_identifier"></spring:message></form:option>
@@ -494,7 +496,7 @@
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageType }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>

View File

@@ -0,0 +1,451 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/global/css/layout.css" type="text/css" media="screen">
<script type="text/javascript" src="${pageContext.request.contextPath}/static/global/plugins/jquery-ui/jquery-ui.min.js"></script>
<title><spring:message code="traffic_user_behavior"></spring:message></title>
<script>
$(document).ready(function() {
// 获取查询类型
if($("#searchBusinessType").val()==3){
$(".userBtn").removeClass("active");
$(".ipBtn").addClass("active");
$(".httpReqCfg").addClass("hidden").addClass("disabled");
// $(".httpResCfg").removeClass("hidden").removeClass("disabled");
$(".accountSearch").addClass("hidden").addClass("disabled");
$(".nasIpSearch").removeClass("hidden").removeClass("disabled");
}else {
$(".nasIpSearch").addClass("hidden").addClass("disabled");
$(".accountSearch").removeClass("hidden").removeClass("disabled");
$(".httpResCfg").addClass("hidden").addClass("disabled");
$(".httpReqCfg").removeClass("hidden").removeClass("disabled");
}
//筛选功能初始化
$("#resetBtn").on("click",function(){
$("select.selectpicker").each(function(){
$(this).selectpicker('val',$(this).find('option:first').val());
$(this).find("option").attr("selected",false);
$(this).find("option:first").attr("selected",true);
});
$(".Wdate").attr("value",'');
$("#searchForm")[0].reset();
});
$(".configType").on("click", function() {
var region = ($(this).find("a").attr("for"));
if(region=="httpReqCfg"){
$(".nasIpSearch").addClass("hidden").addClass("disabled");
$(".httpResCfg").addClass("hidden").addClass("disabled");
$(".httpReqCfg").removeClass("hidden").removeClass("disabled");
$(".accountSearch").removeClass("hidden").removeClass("disabled");
}else{
$(".accountSearch").addClass("hidden").addClass("disabled");
$(".httpReqCfg").addClass("hidden").addClass("disabled");
$(".httpResCfg").removeClass("hidden").removeClass("disabled");
$(".nasIpSearch").removeClass("hidden").removeClass("disabled");
}
});
/* */
var aboutWidth = $(".about").width();
$(".process-timeline").width(aboutWidth);
var lastRightSpeed = 40; //控制拖动到最右边点是否对准时间刻度线上
var processtimelineW = $(".process-timeline").width();
var processrowLength = $(".process-body").find('.process-row').length;
var processbodyNumber = processrowLength*150;
$(".process-body").css({"width":processbodyNumber});
if(processrowLength < 5)
{
$("#draggable").draggable({
disabled: true
});;
return;
}
$("#processLeft").click(function(){
var processContentW = $(".process-content").width();
var processBodyW = $(".process-body").width();
var processBodyML = parseInt($(".ui-draggable").css("left"));
if ( (Math.abs(processBodyML)+processtimelineW) >= processBodyW ) {
return;
}
$(".ui-draggable").css({"left":processBodyML-50});
});
$("#processRight").click(function(){
var processBodyML = parseInt($(".ui-draggable").css("left"));
if (processBodyML == 0) {
return;
}
$(".ui-draggable").css({"left":processBodyML+50});
});
$(document).keydown(function(event){
if (event.keyCode == 39) {
$("#processLeft").click();
}
if (event.keyCode == 37) {
$("#processRight").click();
}
});
$("#draggable").draggable({
cursor: "move",
axis: 'x',
grid: [50, 20],
stop: function(event, ui){
var FleftNumber = parseInt($("#draggable").css("left"));
if (FleftNumber > 0) {
$("#draggable").animate({"left": 0}, 500);
return;
};
var leftNumber = Math.abs(FleftNumber);
leftNumber = leftNumber + processtimelineW;
if (leftNumber > processbodyNumber)
{
leftNumber = processbodyNumber;
$("#draggable").animate({"left": -(leftNumber-processtimelineW + lastRightSpeed)}, 500);
}
}
});
});
function searchList(){
if($(".httpReqCfg").hasClass("hidden")){
$("#searchBusinessType").val(3);
}
if($(".httpResCfg").hasClass("hidden")){
$("#searchBusinessType").val(2);
}
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-default" onClick="javascript:window.location='${ctx}/traffic/userBehavior'"><spring:message code="refresh"/></button>
<button type="button" class="btn btn-default" onClick="javascript:window.history.go(-1)"><spring:message code="back"/></button>
</div>
<h3 class="page-title">
<spring:message code="traffic_user_behavior"></spring:message>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<sys:message content="${message}"/>
<!-- top -->
<div class="row">
<div class="col-md-6">
<h4 class="ng-binding"><spring:message code="user_behavior_data"/></h4>
<div class="row">
<div class="col-md-12">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="account"/></th>
<th><spring:message code="link_num"/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${accountList}" var="data">
<tr>
<td>${data.account}</td>
<td><fmt:formatNumber type="number" value="${data.num}" minFractionDigits="0"></fmt:formatNumber></td>
</tr>
</c:forEach>
</tbody>
</table>
<c:if test="${empty accountList}">
<div class="none-data"><i class="fa fa-warning font-red-flamingo"></i>&nbsp;&nbsp;<spring:message code="noneData"/></div>
</c:if>
</div>
</div>
</div>
<div class="col-md-6">
<h4 class="ng-binding"><spring:message code="ip_behavior_data"/></h4>
<div class="row">
<div class="col-md-12">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="ip"/></th>
<th><spring:message code="link_num"/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${nasIpList}" var="data">
<tr>
<td>${data.nasIp}</td>
<td><fmt:formatNumber type="number" value="${data.num}" minFractionDigits="0"></fmt:formatNumber></td>
</tr>
</c:forEach>
</tbody>
</table>
<c:if test="${empty nasIpList}">
<div class="none-data"><i class="fa fa-warning font-red-flamingo"></i>&nbsp;&nbsp;<spring:message code="noneData"/></div>
</c:if>
</div>
</div>
</div>
</div>
<!-- top end -->
<div class="row">
<ul class="nav nav-tabs">
<li class="userBtn active configType">
<a data-toggle="tab" for="httpReqCfg" data_dldk="<spring:message code="user"/>">
<spring:message code="user" /></a></li>
<li class="ipBtn configType"><a data-toggle="tab" for="httpResCfg" data_dldk="<spring:message code="ip"/>">
<spring:message code="ip"/></a></li>
</ul>
<br>
<!-- searchform -->
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/traffic/userBehavior" method="post" class="form-search">
<input id="searchBusinessType" name="searchBusinessType" type="hidden" value="${searchBusinessType}"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left accountSearch">
<form:select path="account" class="selectpicker select2 input-medium" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/> <spring:message code="user"/></form:option>
<c:forEach items="${accountList}" var="acc" >
<form:option value="${acc.account}">${acc.account}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left nasIpSearch">
<form:select path="nasIp" class="selectpicker select2 input-medium" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/> <spring:message code="ip"/></form:option>
<c:forEach items="${nasIpList}" var="nIp">
<form:option value="${nIp.nasIp}" >${nIp.nasIp}</form:option>
</c:forEach>
</form:select>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="begin_date"/></span>
</div>
<input id="searchFoundStartTime" name="searchFoundStartTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundStartTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<div class="input-group">
<div class="input-group-btn">
<span class="selectpicker form-control" ><spring:message code="end_date"/></span>
</div>
<input id="searchFoundEndTime" name="searchFoundEndTime" type="text" readonly="readonly" class="form-control input-medium Wdate "
value="${log.searchFoundEndTime}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
</div>
</div>
<div class="pull-left">
<button type="button" class="btn blue" onClick="return searchList()"> <i class="fa fa-search"></i> <spring:message code="search"/> </button>
<button type="button" class="btn btn-default" id="resetBtn" > <i class="fa fa-refresh"></i> <spring:message code="reset"/> </button>
</div>
</div>
<!-- 搜索内容与操作按钮栏 -->
</form:form>
</div>
<br>
<!-- searchform end-->
<div class="httpReqCfg">
<div class="row">
<div class="col-md-5" style="padding-right: 1px;">
<div class="panel panel-default" style="height: 500px;">
<div class="panel-body" style="max-height:420px;overflow-y:auto;overflow-x:hidden;">
<h5 class="ng-binding"><spring:message code="account"/></h5>
<div id="deviceRank" class="drank hm-scroll">
<!-- <div class="table-responsive"> -->
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="ip"/></th>
<th><spring:message code="stat_time"/></th>
<th><spring:message code="link_num"/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${userList}" var="us">
<tr>
<td>${us.nasIp}</td>
<td>${us.reportTime}</td>
<td><fmt:formatNumber type="number" value="${us.num}" minFractionDigits="0"></fmt:formatNumber></td>
</tr>
</c:forEach>
</tbody>
</table>
<c:if test="${empty userList}">
<div class="none-data"><i class="fa fa-warning font-red-flamingo"></i>&nbsp;&nbsp;<spring:message code="noneData"/></div>
</c:if>
<!-- </div> -->
</div>
</div>
</div>
</div>
<div class="col-md-7" style="padding-left: 8px;">
<div class="panel panel-default">
<div class="panel-body" style="height:500px">
<h5 class="ng-binding"><spring:message code="account"/></h5>
<div id="trend" style="height: 400px; position: relative;" >
<!-- ===================1============== -->
<div class="scrollMouse text-center">
<span id="processLeft" style="display:inline-block"> <i class="fa fa-caret-left"></i> </span>
<i class="icon icon-mouse"></i>
<span id="processRight" style="display:inline-block"> <i class="fa fa-caret-right"></i> </span>
</div>
<c:if test="${!empty userList}">
<div class="about">
<div class="about-body">
<div class="about-content process-content">
<!-- 鼠标点击 滚动 -->
<div class="process-timeline draggable">
<div id="draggable">
<div class="process-body" width="auto">
<c:forEach items="${userList}" var="us">
<div class="process-row">
<div class="process-time">
<div class="time-con">
<span class="year">${us.reportTime}</span>
</div>
</div>
<div class="process-noyear">
${us.nasIp}
</div>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
</div>
</c:if>
<!-- ===================1============== -->
</div>
</div>
</div>
</div>
</div>
</div>
<!-- IP -->
<div class="httpResCfg">
<div class="row">
<div class="col-md-5" style="padding-right: 1px; ">
<div class="panel panel-default" style="height: 500px;">
<div class="panel-body" style="max-height:420px;overflow-y:auto;overflow-x:hidden;">
<h5 class="ng-binding"><spring:message code="ip"/></h5>
<div id="deviceRank" class="drank hm-scroll">
<!-- <div class="table-responsive"> -->
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code="account"/></th>
<th><spring:message code="stat_time"/></th>
<th><spring:message code="link_num"/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${ipList}" var="it">
<tr>
<td>${it.account}</td>
<td>${it.reportTime}</td>
<td><fmt:formatNumber type="number" value="${it.num}" minFractionDigits="0"></fmt:formatNumber></td>
</tr>
</c:forEach>
</tbody>
</table>
<c:if test="${empty ipList}">
<div class="none-data"><i class="fa fa-warning font-red-flamingo"></i>&nbsp;&nbsp;<spring:message code="noneData"/></div>
</c:if>
<!-- </div> -->
</div>
</div>
</div>
</div>
<div class="col-md-7" style="padding-left: 8px;">
<div class="panel panel-default">
<div class="panel-body" style="height: 500px">
<h5 class="ng-binding"><spring:message code="ip"/></h5>
<div id="trend" style="height: 400px; position: relative;" >
<!-- ===================2============== -->
<div class="scrollMouse text-center">
<span id="processLeft" style="display:inline-block"> <i class="fa fa-caret-left"></i> </span>
<i class="icon icon-mouse"></i>
<span id="processRight" style="display:inline-block"> <i class="fa fa-caret-right"></i> </span>
</div>
<!-- -->
<c:if test="${!empty ipList}">
<div class="about">
<div class="about-body">
<div class="about-content process-content">
<!-- 鼠标点击 滚动 -->
<div class="process-timeline draggable">
<div id="draggable">
<div class="process-body" width="auto">
<c:forEach items="${ipList}" var="it">
<div class="process-row">
<div class="process-time">
<div class="time-con">
<span class="year">${it.reportTime}</span>
</div>
</div>
<div class="process-noyear">
${it.account}
</div>
</div>
</c:forEach>
</div>
</div>
</div>
</div>
</div>
</div>
</c:if>
<!-- ===================2============== -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- IP end -->
</div>
</div>
</div>
</div>
<!-- BEGIN PAGE LEVEL SCRIPTS -->
<!-- END PAGE LEVEL SCRIPTS -->
</body>
</html>

View File

@@ -176,50 +176,54 @@ $(document).ready(function(){
<sys:message content="${message}"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
<th class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column trans_proto"><spring:message code="protocol_type"/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<th class="sort-column label_proto_id"><spring:message code='basic_protocol'/></th>
<th class="sort-column label_proto_source" isVisible="false"><spring:message code='label_proto_source'/></th>
<th class="sort-column label_behav_id"><spring:message code='behaviour_type'/></th>
<th class="sort-column label_behav_source" isVisible="false"><spring:message code='label_behav_source'/></th>
<th class="sort-column label_app_id"><spring:message code='social_app'/></th>
<th class="sort-column label_app_source" isVisible="false"><spring:message code='label_app_source'/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th class="sort-column encap_type"><spring:message code="encap_type"/></th>
<th class="sort-column direction"><spring:message code="direction"/></th>
<th class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th class="sort-column stream_dir"><spring:message code="stream_type"/></th>
<th class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th class="sort-column nest_addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<th class="sort-column scene_file"><spring:message code='scene_file'/></th>
</tr>
</thead>
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<th class="sort-column cfg_id"><spring:message code="cfg_id"/></th>
<th class="sort-column service"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
<th class="sort-column entrance_id"><spring:message code="entrance"/></th>
<th class="sort-column label_proto_id"><spring:message code='basic_protocol'/></th>
<%-- <th class="sort-column label_proto_source"><spring:message code='label_proto_source'/></th> --%>
<th><spring:message code='os_type'/></th>
<th><spring:message code='browser_type'/></th>
<th class="sort-column label_behav_id"><spring:message code='behaviour_type'/></th>
<%-- <th class="sort-column label_behav_source"><spring:message code='label_behav_source'/></th> --%>
<th class="sort-column label_app_id"><spring:message code='social_app'/></th>
<%-- <th class="sort-column label_app_source"><spring:message code='label_app_source'/></th> --%>
<th class="sort-column c2s_pkt_num"><spring:message code='c2s_pkt_num'/></th>
<th class="sort-column s2c_pkt_num"><spring:message code='s2c_pkt_num'/></th>
<th class="sort-column c2s_byte_num"><spring:message code='c2s_byte_num'/></th>
<th class="sort-column s2c_byte_num"><spring:message code='s2c_byte_num'/></th>
<th class="sort-column cap_ip"><spring:message code="clj_ip"/></th>
<th class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th>
<th class="sort-column device_id"><spring:message code="deviceid"/></th>
<th class="sort-column direction"><spring:message code="direction"/></th>
<th class="sort-column stream_dir"><spring:message code="stream_type"/></th>
<%-- <th><spring:message code='nest_addr_list'/></th> --%>
<th class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column s_asn"><spring:message code='s_asn'/></th>
<th class="sort-column d_asn"><spring:message code='d_asn'/></th>
<th class="sort-column s_subscribe_id"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column d_subscribe_id"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column scene_file"><spring:message code='scene_file'/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
<tr>
<td>${log.cfgId } <a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a></td>
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">
@@ -227,11 +231,28 @@ $(document).ready(function(){
</c:if>
</c:forEach>
</td>
<td>${log.foundTime}</td>
<td>${log.foundTime }</td>
<td>${log.recvTime }</td>
<td>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="dict">
<c:if test="${dict.itemCode eq log.entranceId}">
<spring:message code="${dict.itemValue}"/>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dic">
<c:if test="${dic.itemCode eq log.transProto}">
<spring:message code="${dic.itemValue}"/>
</c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td title="${log.dIp }">${fns:abbr(log.dIp, 42)}</td>
<td title="${log.sIp }">${fns:abbr(log.sIp, 42)}</td>
<td>${log.dPort }</td>
<td>${log.sPort }</td>
<td>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="dic">
<c:if test="${dic.itemCode eq log.entranceId}">
<spring:message code="${dic.itemValue}"/>
</c:if>
</c:forEach>
</td>
@@ -246,20 +267,6 @@ $(document).ready(function(){
<td>
${log.labelProtoSource}
</td>
<%-- <td>
<c:forEach items="${osList}" var="dict">
<c:if test="${dict.code eq log.labelOsId}">
<spring:message code="${dict.item}"/>
</c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${browserList}" var="dict">
<c:if test="${dict.code eq log.labelBsId}">
<spring:message code="${dict.item}"/>
</c:if>
</c:forEach>
</td> --%>
<td>
<c:forEach items="${behaviorList}" var="dict">
<c:if test="${dict.code eq log.labelBehavId}">
@@ -280,51 +287,43 @@ $(document).ready(function(){
<td>
${log.labelAppSource}
</td>
<%-- <td>${log.c2sPktNum}</td>
<td>${log.s2cPktNum}</td>
<td>${log.c2sByteNum}</td>
<td>${log.s2cByteNum}</td> --%>
<td title="${log.capIp }">${fns:abbr(log.capIp, 42)}</td>
<td>${log.transProto}</td>
<td>
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="dic">
<c:if test="${log.addrType==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td title="${log.dIp }">${fns:abbr(log.dIp, 42)}</td>
<td title="${log.sIp }">${fns:abbr(log.sIp, 42)}</td>
<td>${log.dPort}</td>
<td>${log.sPort}</td>
<td>
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
<c:if test="${device.itemCode eq log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
</c:forEach>
</td>
<td>${log.linkId }</td>
<td>
<c:forEach items="${fns:getDictList('IP_LOCATION')}" var="dic">
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
<c:forEach items="${fns:getDictList('ENCAP_TYPE')}" var="encapType">
<c:if test="${encapType.itemCode eq log.encapType}"><spring:message code="${encapType.itemValue}"/></c:if>
</c:forEach>
</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="dic">
<c:if test="${log.streamDir==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="direction">
<c:if test="${direction.itemCode eq log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
</c:forEach>
</td>
<%-- <td>
${log.addrList}
</td> --%>
<td>${log.innerSmac }</td>
<td>${log.innerDmac }</td>
<td>
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
<c:if test="${streamType.itemCode eq log.streamDir}">${streamType.itemValue}</c:if>
</c:forEach>
</td>
<td title="${log.capIp }">${fns:abbr(log.capIp, 42)}</td>
<td>${log.addrList }</td>
<td>${log.serverLocate}</td>
<td>${log.clientLocate}</td>
<td>${log.sAsn}</td>
<td>${log.dAsn}</td>
<td>${log.sSubscribeId}</td>
<td>${log.dSubscribeId}</td>
<td>${log.userRegion}</td>
<td>${log.sceneFile}</td>
</tr>
</c:forEach>
</tbody>
</table>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>

View File

@@ -169,6 +169,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -210,9 +211,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -167,6 +167,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -203,9 +204,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -153,12 +153,13 @@ $(document).ready(function(){
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<sys:message content="${message}"/>
<sys:message content="${message}" type="${messageTypes }"/>
<div class="table-responsive">
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -202,9 +203,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -176,6 +176,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -221,9 +222,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -170,6 +170,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -207,9 +208,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -200,6 +200,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -237,9 +238,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -176,6 +176,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -221,9 +222,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -169,6 +169,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -202,9 +203,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -156,6 +156,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -193,9 +194,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -168,6 +168,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -206,9 +207,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -167,6 +167,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -208,9 +209,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -168,6 +168,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -210,9 +211,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -167,6 +167,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -209,9 +210,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -168,6 +168,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -210,9 +211,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -167,6 +167,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -209,9 +210,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -164,6 +164,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -206,9 +207,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -167,6 +167,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -209,9 +210,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -167,6 +167,7 @@ $(document).ready(function(){
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -209,9 +210,10 @@ $(document).ready(function(){
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

View File

@@ -224,6 +224,7 @@
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap logTb">
<thead>
<tr>
<th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th>
<th class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th>
@@ -266,9 +267,10 @@
<tbody>
<c:forEach var="log" items="${page.list }" varStatus="status">
<tr>
<td>${log.cfgId }
<td>
<a href="javascript:void(0)" name="viewLogInfo"><i class="icon-book-open"></i></a>
</td>
<td>${log.cfgId }</td>
<td>
<c:forEach items="${fns:getDictList('SERVICE_ACTION')}" var="dict">
<c:if test="${dict.itemCode eq log.action}">

Some files were not shown because too many files have changed in this diff Show More