日志导出 首行添加标题和时间范围

This commit is contained in:
leijun
2018-12-21 14:33:00 +08:00
parent 5236f5af2b
commit b553c27b15
34 changed files with 353 additions and 131 deletions

View File

@@ -1,19 +1,27 @@
package com.nis.domain.log; package com.nis.domain.log;
import com.nis.util.excel.ExcelField;
public class IrDnatLog extends BaseLogEntity<IrDnatLog> { public class IrDnatLog extends BaseLogEntity<IrDnatLog> {
private static final long serialVersionUID = 5860838446015457328L; private static final long serialVersionUID = 5860838446015457328L;
@ExcelField(title = "user", sort = 8)
protected String userId;// 用户名 protected String userId;// 用户名
@ExcelField(title = "nat_ip", sort = 9)
protected String natIp;// 复用的ip地址 protected String natIp;// 复用的ip地址
@ExcelField(title = "creat_time", sort = 10)
protected String creatTime;// 链接建立时间 protected String creatTime;// 链接建立时间
@ExcelField(title = "close_time", sort = 11)
protected String closeTime;// 链接结束时间 protected String closeTime;// 链接结束时间
protected String c2sPktNum;// c2s包数 @ExcelField(title = "c2s_pkt_num", sort = 12)
protected String s2cPktNum;// s2c包数 protected String c2sPktNum;
protected String c2sByteNum;// c2s字节数 @ExcelField(title = "s2c_pkt_num", sort = 13)
protected String s2cByteNum;// s2c字节数 protected String s2cPktNum;
@ExcelField(title = "c2s_byte_num", sort = 14)
protected String c2sByteNum;
@ExcelField(title = "s2c_byte_num", sort = 15)
protected String s2cByteNum;
public String getUserId() { public String getUserId() {
return userId; return userId;

View File

@@ -1,17 +1,25 @@
package com.nis.domain.log; package com.nis.domain.log;
import com.nis.util.excel.ExcelField;
public class IrSnatLog extends BaseLogEntity<IrSnatLog> { public class IrSnatLog extends BaseLogEntity<IrSnatLog> {
private static final long serialVersionUID = 5860838446015457328L; private static final long serialVersionUID = 5860838446015457328L;
@ExcelField(title = "nat_ip", sort = 9)
protected String natIp;// 复用的ip地址 protected String natIp;// 复用的ip地址
@ExcelField(title = "creat_time", sort = 10)
protected String creatTime;// 链接建立时间 protected String creatTime;// 链接建立时间
@ExcelField(title = "close_time", sort = 11)
protected String closeTime;// 链接结束时间 protected String closeTime;// 链接结束时间
protected String c2sPktNum;// c2s包数 @ExcelField(title = "c2s_pkt_num", sort = 12)
protected String s2cPktNum;// s2c包数 protected String c2sPktNum;
protected String c2sByteNum;// c2s字节数 @ExcelField(title = "s2c_pkt_num", sort = 13)
protected String s2cByteNum;// s2c字节数 protected String s2cPktNum;
@ExcelField(title = "c2s_byte_num", sort = 14)
protected String c2sByteNum;
@ExcelField(title = "s2c_byte_num", sort = 15)
protected String s2cByteNum;
public String getNatIp() { public String getNatIp() {
return natIp; return natIp;

View File

@@ -225,14 +225,14 @@ public class ExcelCsv {
for (int i = 0; i < replaceStr.length; i++) { for (int i = 0; i < replaceStr.length; i++) {
String [] fields=replaceStr[i].split(":"); String [] fields=replaceStr[i].split(":");
if(fields[0].equals(titleStr)){ if(fields[0].equals(titleStr)){
titleStr=msgProp.getProperty(fields[1]); titleStr=msgProp.getProperty(fields[1],fields[1]);
flag=false; flag=false;
break; break;
} }
} }
} }
if(flag){ if(flag){
titleStr=msgProp.getProperty(titleStr)==null?titleStr:msgProp.getProperty(titleStr); titleStr=msgProp.getProperty(titleStr)==null?titleStr:msgProp.getProperty(titleStr,titleStr);
} }
headerList.add(titleStr); headerList.add(titleStr);
commentList.add(commentStr); commentList.add(commentStr);

View File

@@ -2227,14 +2227,14 @@ public class ExportExcel {
for (int i = 0; i < replaceStr.length; i++) { for (int i = 0; i < replaceStr.length; i++) {
String [] fields=replaceStr[i].split(":"); String [] fields=replaceStr[i].split(":");
if(fields[0].equals(titleStr)){ if(fields[0].equals(titleStr)){
titleStr=msgProp.getProperty(fields[1]); titleStr=msgProp.getProperty(fields[1],fields[1]);
flag=false; flag=false;
break; break;
} }
} }
} }
if(flag){ if(flag){
titleStr=msgProp.getProperty(titleStr)==null?titleStr:msgProp.getProperty(titleStr); titleStr=msgProp.getProperty(titleStr)==null?titleStr:msgProp.getProperty(titleStr,titleStr);
} }
headerList.add(titleStr); headerList.add(titleStr);
commentList.add(commentStr); commentList.add(commentStr);

View File

@@ -2031,7 +2031,17 @@ public class BaseController {
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
ExcelCsv.writeCSVFile(response,titleList,headMap,dataList,fileName,titleTime,msgProp); ExcelCsv.writeCSVFile(response,titleList,headMap,dataList,fileName,titleTime,msgProp);
} }
public String initLogMap(BaseLogEntity log,String title){
Properties msgProp = getMsgProp();
String logTime=msgProp.getProperty(title,title);;
if(log.getSearchFoundStartTime()!=null){
logTime+=" "+msgProp.getProperty("begin_date")+""+log.getSearchFoundStartTime();
}
if(log.getSearchFoundEndTime()!=null){
logTime+=" "+msgProp.getProperty("end_date")+""+log.getSearchFoundStartTime();
}
return logTime;
}
public String initTimeMap(BaseCfg cfg){ public String initTimeMap(BaseCfg cfg){
Properties msgProp = getMsgProp(); Properties msgProp = getMsgProp();

View File

@@ -186,7 +186,8 @@ public class DkBehaviorLogController extends BaseController{
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put(name, cfgIndexInfoNoExport); noExportMap.put(name, cfgIndexInfoNoExport);
dataMap.put(name, list); dataMap.put(name, list);
String timeRange= initLogMap(entry,name);
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, name, titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, name, titleList, classMap,
dataMap, noExportMap); dataMap, noExportMap);

View File

@@ -124,6 +124,8 @@ public class BgpLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("bgp_control", cfgIndexInfoNoExport); noExportMap.put("bgp_control", cfgIndexInfoNoExport);
dataMap.put("bgp_control", list); dataMap.put("bgp_control", list);
String timeRange= initLogMap(log,"bgp_control");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(types)) { if ("csv".equals(types)) {
this._exportCsv(model, request, response, redirectAttributes, "bgp_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "bgp_control", titleList, classMap,

View File

@@ -7,6 +7,7 @@ import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -31,6 +32,7 @@ import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.PageLog; import com.nis.domain.PageLog;
import com.nis.domain.SysUser; import com.nis.domain.SysUser;
import com.nis.domain.log.BaseLogEntity;
import com.nis.domain.log.NtcBGPLog; import com.nis.domain.log.NtcBGPLog;
import com.nis.domain.log.NtcCollectRadiusLog; import com.nis.domain.log.NtcCollectRadiusLog;
import com.nis.domain.log.NtcCollectVoipLog; import com.nis.domain.log.NtcCollectVoipLog;
@@ -278,6 +280,8 @@ public class CollectVoipLogController extends BaseController {
String cfgIndexInfoNoExport = ",cfg_id,action," + hColumns; String cfgIndexInfoNoExport = ",cfg_id,action," + hColumns;
noExportMap.put("collect_voip", cfgIndexInfoNoExport); noExportMap.put("collect_voip", cfgIndexInfoNoExport);
dataMap.put("collect_voip", list); dataMap.put("collect_voip", list);
String timeRange= initLogVoipMap(entry,"collect_voip");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "collect_voip", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "collect_voip", titleList, classMap,
@@ -292,6 +296,20 @@ public class CollectVoipLogController extends BaseController {
} }
} }
public String initLogVoipMap(NtcCollectVoipLog log,String title){
Properties msgProp = getMsgProp();
String logTime=msgProp.getProperty(title,title);;
if(log.getSearchFoundStartTime()!=null){
logTime+=" "+msgProp.getProperty("begin_date")+""+log.getSearchFoundStartTime();
}
if(log.getSearchFoundEndTime()!=null){
logTime+=" "+msgProp.getProperty("end_date")+""+log.getSearchFoundStartTime();
}
return logTime;
}
public List<NtcCollectVoipLog> getList() { public List<NtcCollectVoipLog> getList() {
List<NtcCollectVoipLog> list = new ArrayList<NtcCollectVoipLog>(); List<NtcCollectVoipLog> list = new ArrayList<NtcCollectVoipLog>();
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {

View File

@@ -170,7 +170,8 @@ public class DdosLogController extends BaseController{
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("target_ip_protect", cfgIndexInfoNoExport); noExportMap.put("target_ip_protect", cfgIndexInfoNoExport);
dataMap.put("target_ip_protect", list); dataMap.put("target_ip_protect", list);
String timeRange= initLogMap(log,"target_ip_protect");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "target_ip_protect", titleList, classMap, dataMap, this._exportCsv(model, request, response, redirectAttributes, "target_ip_protect", titleList, classMap, dataMap,
noExportMap); noExportMap);

View File

@@ -133,6 +133,8 @@ public class DnsLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("DNS", cfgIndexInfoNoExport); noExportMap.put("DNS", cfgIndexInfoNoExport);
dataMap.put("DNS", list); dataMap.put("DNS", list);
String timeRange= initLogMap(log,"DNS");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "DNS", titleList, classMap, dataMap, this._exportCsv(model, request, response, redirectAttributes, "DNS", titleList, classMap, dataMap,

View File

@@ -144,6 +144,8 @@ public class FtpLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("ftp_control", cfgIndexInfoNoExport); noExportMap.put("ftp_control", cfgIndexInfoNoExport);
dataMap.put("ftp_control", list); dataMap.put("ftp_control", list);
String timeRange= initLogMap(log,"ftp_control");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "ftp_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "ftp_control", titleList, classMap,

View File

@@ -147,8 +147,8 @@ public class HttpKeyLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("http_keyword", cfgIndexInfoNoExport); noExportMap.put("http_keyword", cfgIndexInfoNoExport);
dataMap.put("http_keyword", list); dataMap.put("http_keyword", list);
// String timeRange= initLogMap(log,"http_keyword"); String timeRange= initLogMap(log,"http_keyword");
// noExportMap.put("timeRange", timeRange); noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "http_keyword", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "http_keyword", titleList, classMap,

View File

@@ -143,8 +143,8 @@ public class HttpLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("HTTP", cfgIndexInfoNoExport); noExportMap.put("HTTP", cfgIndexInfoNoExport);
dataMap.put("HTTP", list); dataMap.put("HTTP", list);
/*String timeRange= initLogMap(log,"HTTP"); String timeRange= initLogMap(log,"HTTP");
noExportMap.put("timeRange", timeRange);*/ noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "HTTP", titleList, classMap, dataMap, this._exportCsv(model, request, response, redirectAttributes, "HTTP", titleList, classMap, dataMap,

View File

@@ -1,25 +1,18 @@
package com.nis.web.controller.log.ntc; package com.nis.web.controller.log.ntc;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.aspectj.util.FileUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@@ -27,11 +20,8 @@ import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.PageLog; import com.nis.domain.PageLog;
import com.nis.domain.SysUser; import com.nis.domain.SysUser;
import com.nis.domain.log.NtcHttpLog;
import com.nis.domain.log.NtcIpLog;
import com.nis.domain.log.NtcIpLog; import com.nis.domain.log.NtcIpLog;
import com.nis.domain.maat.LogRecvData; import com.nis.domain.maat.LogRecvData;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.Constants; import com.nis.util.Constants;
import com.nis.util.DictUtils; import com.nis.util.DictUtils;
import com.nis.util.httpclient.HttpClientUtil; import com.nis.util.httpclient.HttpClientUtil;
@@ -138,7 +128,6 @@ public class IpLogController extends BaseController {
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId()); List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
model.addAttribute("serviceList", serviceList); model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.NTC_IP_LOG; String url = Constants.LOG_BASE_URL + Constants.NTC_IP_LOG;
String recv = HttpClientUtil.getMsg(url, params, request); String recv = HttpClientUtil.getMsg(url, params, request);
List<NtcIpLog> list = new ArrayList<NtcIpLog>(); List<NtcIpLog> list = new ArrayList<NtcIpLog>();
@@ -156,8 +145,8 @@ public class IpLogController extends BaseController {
setLogAction(l, serviceList); setLogAction(l, serviceList);
} }
titleList.add("Ip"); titleList.add("ip_control");
classMap.put("Ip", NtcIpLog.class); classMap.put("ip_control", NtcIpLog.class);
SysUser user = UserUtils.getUser(); SysUser user = UserUtils.getUser();
if (!user.isAdmin()) { if (!user.isAdmin()) {
hColumns += ",scene_file,"; hColumns += ",scene_file,";
@@ -165,14 +154,15 @@ public class IpLogController extends BaseController {
hColumns += ","; hColumns += ",";
} }
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("Ip", cfgIndexInfoNoExport); noExportMap.put("ip_control", cfgIndexInfoNoExport);
dataMap.put("Ip", list); dataMap.put("ip_control", list);
String timeRange= initLogMap(log,"ip_control");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "Ip", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "ip_control", titleList, classMap,
dataMap, noExportMap); dataMap, noExportMap);
} else { } else {
this._export(model, request, response, redirectAttributes, "Ip", titleList, classMap, dataMap, this._export(model, request, response, redirectAttributes, "ip_control", titleList, classMap, dataMap,
noExportMap); noExportMap);
} }
} catch (Exception e) { } catch (Exception e) {

View File

@@ -1,5 +1,6 @@
package com.nis.web.controller.log.ntc; package com.nis.web.controller.log.ntc;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -12,6 +13,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
@@ -19,13 +21,14 @@ import com.google.gson.reflect.TypeToken;
import com.nis.domain.FunctionServiceDict; import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.PageLog; import com.nis.domain.PageLog;
import com.nis.domain.SysUser;
import com.nis.domain.log.IrDnatLog; import com.nis.domain.log.IrDnatLog;
import com.nis.domain.log.NtcIpsecLog;
import com.nis.domain.maat.LogRecvData; import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants; import com.nis.util.Constants;
import com.nis.util.DictUtils; import com.nis.util.DictUtils;
import com.nis.util.httpclient.HttpClientUtil; import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller @Controller
@RequestMapping("${adminPath}/log/ntc/irDnatLogs") @RequestMapping("${adminPath}/log/ntc/irDnatLogs")
@@ -70,4 +73,69 @@ public class IrDnatLogController extends BaseController {
return "/log/ntc/irDnatLogList"; return "/log/ntc/irDnatLogList";
} }
// Ip配置导出
@RequestMapping(value = "exportDnat")
public void exportIp(@ModelAttribute("log") IrDnatLog log, Model model, String hColumns, String type,
HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
try {
// export data info
List<String> titleList = new ArrayList<String>();
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
Map<String, List> dataMap = new HashMap<String, List>();
Map<String, String> noExportMap = new HashMap<String, String>();
// ---------------------------
List<IrDnatLog> list = new ArrayList<IrDnatLog>();
PageLog<IrDnatLog> page = new PageLog<IrDnatLog>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
initLogSearchValue(log, params);
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.IR_DNAT_LOG;
String recv = HttpClientUtil.getMsg(url, params, request);
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<IrDnatLog> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<IrDnatLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<IrDnatLog> data = fromJson.getData();
list = data.getList();
}
}
for (IrDnatLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l,serviceList);
}
titleList.add("dnat_multiplex");
classMap.put("dnat_multiplex", IrDnatLog.class);
SysUser user = UserUtils.getUser();
if (!user.isAdmin()) {
hColumns += ",scene_file,";
} else {
hColumns += ",";
}
String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("dnat_multiplex", cfgIndexInfoNoExport);
dataMap.put("dnat_multiplex", list);
String timeRange= initLogMap(log,"dnat_multiplex");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "dnat_multiplex", titleList, classMap,
dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, "dnat_multiplex", titleList, classMap, dataMap,
noExportMap);
}
} catch (Exception e) {
logger.error("dnat_multiplex export failed", e);
addMessage(redirectAttributes, "error", "export_failed");
}
}
} }

View File

@@ -1,5 +1,6 @@
package com.nis.web.controller.log.ntc; package com.nis.web.controller.log.ntc;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -12,6 +13,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
@@ -19,13 +21,14 @@ import com.google.gson.reflect.TypeToken;
import com.nis.domain.FunctionServiceDict; import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page; import com.nis.domain.Page;
import com.nis.domain.PageLog; import com.nis.domain.PageLog;
import com.nis.domain.log.IrDnatLog; import com.nis.domain.SysUser;
import com.nis.domain.log.IrSnatLog; import com.nis.domain.log.IrSnatLog;
import com.nis.domain.maat.LogRecvData; import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants; import com.nis.util.Constants;
import com.nis.util.DictUtils; import com.nis.util.DictUtils;
import com.nis.util.httpclient.HttpClientUtil; import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController; import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller @Controller
@RequestMapping("${adminPath}/log/ntc/irSnatLogs") @RequestMapping("${adminPath}/log/ntc/irSnatLogs")
@@ -71,4 +74,70 @@ public class IrSnatLogController extends BaseController {
return "/log/ntc/irSnatLogList"; return "/log/ntc/irSnatLogList";
} }
// Ip配置导出
@RequestMapping(value = "exportSnat")
public void exportIp(@ModelAttribute("log") IrSnatLog log, Model model, String hColumns, String type,
HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
try {
// export data info
List<String> titleList = new ArrayList<String>();
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
Map<String, List> dataMap = new HashMap<String, List>();
Map<String, String> noExportMap = new HashMap<String, String>();
// ---------------------------
List<IrSnatLog> list = new ArrayList<IrSnatLog>();
PageLog<IrSnatLog> page = new PageLog<IrSnatLog>(request, response);
page.setPageNo(1);
page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE);
Map<String, Object> params = new HashMap<String, Object>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
initLogSearchValue(log, params);
List<FunctionServiceDict> serviceList = DictUtils.getFunctionServiceDictList(log.getFunctionId());
model.addAttribute("serviceList", serviceList);
String url = Constants.LOG_BASE_URL + Constants.IR_SNAT_LOG;
String recv = HttpClientUtil.getMsg(url, params, request);
if (StringUtils.isNotBlank(recv)) {
Gson gson = new GsonBuilder().create();
LogRecvData<IrSnatLog> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<IrSnatLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
Page<IrSnatLog> data = fromJson.getData();
list = data.getList();
}
}
for (IrSnatLog l : list) {
l.setFunctionId(log.getFunctionId());
setLogAction(l,serviceList);
}
titleList.add("snat_multiplex");
classMap.put("snat_multiplex", IrSnatLog.class);
SysUser user = UserUtils.getUser();
if (!user.isAdmin()) {
hColumns += ",scene_file,";
} else {
hColumns += ",";
}
String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("snat_multiplex", cfgIndexInfoNoExport);
dataMap.put("snat_multiplex", list);
String timeRange= initLogMap(log,"snat_multiplex");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "snat_multiplex", titleList, classMap,
dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, "snat_multiplex", titleList, classMap, dataMap,
noExportMap);
}
} catch (Exception e) {
logger.error("snat_multiplex export failed", e);
addMessage(redirectAttributes, "error", "export_failed");
}
}
} }

View File

@@ -151,6 +151,8 @@ public class MailLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("mail_control", cfgIndexInfoNoExport); noExportMap.put("mail_control", cfgIndexInfoNoExport);
dataMap.put("mail_control", list); dataMap.put("mail_control", list);
String timeRange= initLogMap(log,"mail_control");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "mail_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "mail_control", titleList, classMap,

View File

@@ -147,6 +147,8 @@ public class MmAvUrlLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("streaming_media", cfgIndexInfoNoExport); noExportMap.put("streaming_media", cfgIndexInfoNoExport);
dataMap.put("streaming_media", list); dataMap.put("streaming_media", list);
String timeRange= initLogMap(log,"streaming_media");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "streaming_media", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "streaming_media", titleList, classMap,

View File

@@ -146,7 +146,8 @@ public class MmFileDigestLogController extends BaseController {
String cfgIndexInfoNoExport = ",log_uri,direction," + hColumns; String cfgIndexInfoNoExport = ",log_uri,direction," + hColumns;
noExportMap.put("file_digest_control", cfgIndexInfoNoExport); noExportMap.put("file_digest_control", cfgIndexInfoNoExport);
dataMap.put("file_digest_control", list); dataMap.put("file_digest_control", list);
String timeRange= initLogMap(log,"file_digest_control");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "file_digest_control", titleList, classMap, dataMap, this._exportCsv(model, request, response, redirectAttributes, "file_digest_control", titleList, classMap, dataMap,
noExportMap); noExportMap);

View File

@@ -169,6 +169,8 @@ public class MmPornAvSampleController extends BaseController {
String cfgIndexInfoNoExport=","+hColumns; String cfgIndexInfoNoExport=","+hColumns;
noExportMap.put("av_sample_video_porn_control",cfgIndexInfoNoExport); noExportMap.put("av_sample_video_porn_control",cfgIndexInfoNoExport);
dataMap.put("av_sample_video_porn_control",list); dataMap.put("av_sample_video_porn_control",list);
String timeRange= initLogMap(log,"av_sample_video_porn_control");
noExportMap.put("timeRange", timeRange);
/*}*/ /*}*/
if("csv".equals(type)){ if("csv".equals(type)){
this._exportCsv(model, request, response, redirectAttributes,"av_sample_video_porn_control",titleList,classMap,dataMap,noExportMap); this._exportCsv(model, request, response, redirectAttributes,"av_sample_video_porn_control",titleList,classMap,dataMap,noExportMap);

View File

@@ -127,7 +127,8 @@ public class MmSampleAudioController extends BaseController{
String cfgIndexInfoNoExport = ",direction," + hColumns; String cfgIndexInfoNoExport = ",direction," + hColumns;
noExportMap.put("av_sample_audio_control", cfgIndexInfoNoExport); noExportMap.put("av_sample_audio_control", cfgIndexInfoNoExport);
dataMap.put("av_sample_audio_control", list); dataMap.put("av_sample_audio_control", list);
String timeRange= initLogMap(log,"av_sample_audio_control");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "av_sample_audio_control", titleList, classMap, dataMap, this._exportCsv(model, request, response, redirectAttributes, "av_sample_audio_control", titleList, classMap, dataMap,
noExportMap); noExportMap);

View File

@@ -112,8 +112,8 @@ public class MmSamplePicController extends BaseController{
l.setFunctionId(log.getFunctionId()); l.setFunctionId(log.getFunctionId());
setLogAction(l, serviceList); setLogAction(l, serviceList);
} }
titleList.add("SamplePic"); titleList.add("av_sample_picture_control");
classMap.put("SamplePic", MmSamplePicLog.class); classMap.put("av_sample_picture_control", MmSamplePicLog.class);
SysUser user = UserUtils.getUser(); SysUser user = UserUtils.getUser();
if (!user.isAdmin()) { if (!user.isAdmin()) {
hColumns += ",scene_file,"; hColumns += ",scene_file,";
@@ -123,7 +123,8 @@ public class MmSamplePicController extends BaseController{
String cfgIndexInfoNoExport = ",direction," + hColumns; String cfgIndexInfoNoExport = ",direction," + hColumns;
noExportMap.put("av_sample_picture_control", cfgIndexInfoNoExport); noExportMap.put("av_sample_picture_control", cfgIndexInfoNoExport);
dataMap.put("av_sample_picture_control", list); dataMap.put("av_sample_picture_control", list);
String timeRange= initLogMap(log,"av_sample_picture_control");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "av_sample_picture_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "av_sample_picture_control", titleList, classMap,
dataMap, noExportMap); dataMap, noExportMap);

View File

@@ -123,7 +123,8 @@ public class MmSampleVideoController extends BaseController{
String cfgIndexInfoNoExport = ",direction," + hColumns; String cfgIndexInfoNoExport = ",direction," + hColumns;
noExportMap.put("av_sample_video_control", cfgIndexInfoNoExport); noExportMap.put("av_sample_video_control", cfgIndexInfoNoExport);
dataMap.put("av_sample_video_control", list); dataMap.put("av_sample_video_control", list);
String timeRange= initLogMap(log,"av_sample_video_control");
noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "av_sample_video_control", titleList, classMap, dataMap, this._exportCsv(model, request, response, redirectAttributes, "av_sample_video_control", titleList, classMap, dataMap,
noExportMap); noExportMap);

View File

@@ -131,6 +131,8 @@ public class MmSampleVoipLogController extends BaseController {
String cfgIndexInfoNoExport=","+hColumns; String cfgIndexInfoNoExport=","+hColumns;
noExportMap.put("av_sample_voip_control",cfgIndexInfoNoExport); noExportMap.put("av_sample_voip_control",cfgIndexInfoNoExport);
dataMap.put("av_sample_voip_control",list); dataMap.put("av_sample_voip_control",list);
String timeRange= initLogMap(log,"av_sample_voip_control");
noExportMap.put("timeRange", timeRange);
/*}*/ /*}*/
if("csv".equals(type)){ if("csv".equals(type)){
this._exportCsv(model, request, response, redirectAttributes,"av_sample_voip_control",titleList,classMap,dataMap,noExportMap); this._exportCsv(model, request, response, redirectAttributes,"av_sample_voip_control",titleList,classMap,dataMap,noExportMap);

View File

@@ -142,6 +142,8 @@ public class MmVoipIpLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("av_voip_control", cfgIndexInfoNoExport); noExportMap.put("av_voip_control", cfgIndexInfoNoExport);
dataMap.put("av_voip_control", list); dataMap.put("av_voip_control", list);
String timeRange= initLogMap(log,"av_voip_control");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "av_voip_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "av_voip_control", titleList, classMap,

View File

@@ -127,6 +127,9 @@ public class NtcCollectRadiusLogController extends BaseController {
String cfgIndexInfoNoExport=",cfg_id,action,"+hColumns; String cfgIndexInfoNoExport=",cfg_id,action,"+hColumns;
noExportMap.put("radius_log",cfgIndexInfoNoExport); noExportMap.put("radius_log",cfgIndexInfoNoExport);
dataMap.put("radius_log",list); dataMap.put("radius_log",list);
String timeRange= initLogMap(log,"radius_log");
noExportMap.put("timeRange", timeRange);
/*}*/ /*}*/
if("csv".equals(type)){ if("csv".equals(type)){
this._exportCsv(model, request, response, redirectAttributes,"radius_log",titleList,classMap,dataMap,noExportMap); this._exportCsv(model, request, response, redirectAttributes,"radius_log",titleList,classMap,dataMap,noExportMap);

View File

@@ -180,6 +180,8 @@ public class NtcConnRecordLogController extends BaseController {
String cfgIndexInfoNoExport = ",cfg_id,action," + hColumns; String cfgIndexInfoNoExport = ",cfg_id,action," + hColumns;
noExportMap.put("conn_record", cfgIndexInfoNoExport); noExportMap.put("conn_record", cfgIndexInfoNoExport);
dataMap.put("conn_record", list); dataMap.put("conn_record", list);
String timeRange= initLogMap(log,"conn_record");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "conn_record", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "conn_record", titleList, classMap,

View File

@@ -122,8 +122,8 @@ public class OpenVpnLogController extends BaseController{
list= data.getList(); list= data.getList();
} }
} }
titleList.add("openVpn_log"); titleList.add("spoofing_ip_policy");
classMap.put("openVpn_log", NtcOpenVpnLog.class); classMap.put("spoofing_ip_policy", NtcOpenVpnLog.class);
SysUser user =UserUtils.getUser(); SysUser user =UserUtils.getUser();
if (!user.isAdmin()){ if (!user.isAdmin()){
hColumns+=",scene_file,"; hColumns+=",scene_file,";
@@ -131,13 +131,15 @@ public class OpenVpnLogController extends BaseController{
hColumns+=","; hColumns+=",";
} }
String cfgIndexInfoNoExport=",cfg_id,action,"+hColumns; String cfgIndexInfoNoExport=",cfg_id,action,"+hColumns;
noExportMap.put("openVpn_log",cfgIndexInfoNoExport); noExportMap.put("spoofing_ip_policy",cfgIndexInfoNoExport);
dataMap.put("openVpn_log",list); dataMap.put("spoofing_ip_policy",list);
String timeRange= initLogMap(log,"spoofing_ip_policy");
noExportMap.put("timeRange", timeRange);
/*}*/ /*}*/
if("csv".equals(type)){ if("csv".equals(type)){
this._exportCsv(model, request, response, redirectAttributes,"openVpn_log",titleList,classMap,dataMap,noExportMap); this._exportCsv(model, request, response, redirectAttributes,"spoofing_ip_policy",titleList,classMap,dataMap,noExportMap);
}else{ }else{
this._export(model, request, response, redirectAttributes,"openVpn_log",titleList,classMap,dataMap,noExportMap); this._export(model, request, response, redirectAttributes,"spoofing_ip_policy",titleList,classMap,dataMap,noExportMap);
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("openVpn export failed",e); logger.error("openVpn export failed",e);

View File

@@ -128,6 +128,8 @@ public class P2pLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("p2p_control", cfgIndexInfoNoExport); noExportMap.put("p2p_control", cfgIndexInfoNoExport);
dataMap.put("p2p_control", list); dataMap.put("p2p_control", list);
String timeRange= initLogMap(log,"p2p_control");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "p2p_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "p2p_control", titleList, classMap,

View File

@@ -138,6 +138,8 @@ public class SslLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put("ssl_control", cfgIndexInfoNoExport); noExportMap.put("ssl_control", cfgIndexInfoNoExport);
dataMap.put("ssl_control", list); dataMap.put("ssl_control", list);
String timeRange= initLogMap(log,"ssl_control");
noExportMap.put("timeRange", timeRange);
/* } */ /* } */
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, "ssl_control", titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, "ssl_control", titleList, classMap,

View File

@@ -178,8 +178,8 @@ public class PxyHttpLogController extends BaseController {
String cfgIndexInfoNoExport = "," + hColumns; String cfgIndexInfoNoExport = "," + hColumns;
noExportMap.put(pxyName, cfgIndexInfoNoExport); noExportMap.put(pxyName, cfgIndexInfoNoExport);
dataMap.put(pxyName, list); dataMap.put(pxyName, list);
/*String timeRange= initLogMap(log,pxyName); String timeRange= initLogMap(log,pxyName);
noExportMap.put("timeRange", timeRange);*/ noExportMap.put("timeRange", timeRange);
if ("csv".equals(type)) { if ("csv".equals(type)) {
this._exportCsv(model, request, response, redirectAttributes, pxyName, titleList, classMap, this._exportCsv(model, request, response, redirectAttributes, pxyName, titleList, classMap,
dataMap, noExportMap); dataMap, noExportMap);

View File

@@ -94,6 +94,16 @@
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button> <button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button>
</div> </div>
<div class="pull-right"> <div class="pull-right">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><sys:delRow url="${ctx}/log/ntc/irDnatLogs/exportDnat?type=excel" searchUrl="${ctx}/log/ntc/irDnatLogs/list" id="contentTable" maxRow="10000" label="excel"></sys:delRow></li>
<li><sys:delRow url="${ctx}/log/ntc/irDnatLogs/exportDnat?type=csv" searchUrl="${ctx}/log/ntc/irDnatLogs/list" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips" <a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;"> data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i> <i class="icon-wrench"></i>
@@ -179,46 +189,45 @@
<thead> <thead>
<tr> <tr>
<th><spring:message code="log"/></th> <th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th> <th column="cfg_id" 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 column="action" class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th> <th column="found_time" 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 column="recv_time" class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th> <th column="entrance_id" class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<th class="sort-column user_id"><spring:message code="user"/></th> <th column="user" class="sort-column user_id"><spring:message code="user"/></th>
<th class="sort-column nat_ip"><spring:message code="nat_ip"/></th> <th column="nat_ip" class="sort-column nat_ip"><spring:message code="nat_ip"/></th>
<th class="sort-column creat_time"><spring:message code="creat_time"/></th> <th column="creat_time" class="sort-column creat_time"><spring:message code="creat_time"/></th>
<th class="sort-column close_time"><spring:message code='close_time'/></th> <th column="close_time" class="sort-column close_time"><spring:message code='close_time'/></th>
<th class="sort-column c2s_pkt_num"><spring:message code="c2s_pkt_num"/></th> <th column="c2s_pkt_num" 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 column="s2c_pkt_num" 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 column="c2s_byte_num" 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 column="s2c_byte_num" class="sort-column s2c_byte_num"><spring:message code="s2c_byte_num"/></th>
<th column="clj_ip" class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th column="transport_layer_protocol" class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th>
<th column="addr_type" class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th column="server_ip" class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th column="client_ip" class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th column="server_port" class="sort-column d_port"><spring:message code="server_port"/></th>
<th column="client_port" class="sort-column s_port"><spring:message code="client_port"/></th>
<th column="deviceid" class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th column="link_id" class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th column="encap_type" class="sort-column encap_type"><spring:message code="encap_type"/></th>
<th column="direction" class="sort-column direction"><spring:message code="direction"/></th>
<th column="inner_smac" class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th column="inner_dmac" class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th column="stream_type" 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 column="nest_addr_list" class="sort-column addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th> <th column="server_locate" class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th> <th column="client_locate" class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th> <th column="s_asn" class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th> <th column="d_asn" class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th> <th column="s_subscribe_id" class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th> <th column="d_subscribe_id" class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th> <th column="user_region" class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th> <c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file" column="scene_file" ><spring:message code='scene_file'/></th></c:if>
<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 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>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file"><spring:message code='scene_file'/></th></c:if>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>

View File

@@ -95,6 +95,16 @@
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button> <button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/><i class="fa fa-angle-double-down"></i></button>
</div> </div>
<div class="pull-right"> <div class="pull-right">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-wrench"></i> <spring:message code="export"></spring:message>
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" style="min-width: 110px;" >
<li><sys:delRow url="${ctx}/log/ntc/irSnatLogs/exportSnat?type=excel" searchUrl="${ctx}/log/ntc/irSnatLogs/list" id="contentTable" maxRow="10000" label="excel"></sys:delRow></li>
<li><sys:delRow url="${ctx}/log/ntc/irSnatLogs/exportSnat?type=csv" searchUrl="${ctx}/log/ntc/irSnatLogs/list" id="contentTable" maxRow="10000" label="csv"></sys:delRow></li>
</ul>
</div>
<a class="btn btn-icon-only btn-default setfields tooltips" <a class="btn btn-icon-only btn-default setfields tooltips"
data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;"> data-container="body" data-placement="top" data-original-title=<spring:message code="custom_columns"/> href="javascript:;">
<i class="icon-wrench"></i> <i class="icon-wrench"></i>
@@ -180,45 +190,44 @@
<thead> <thead>
<tr> <tr>
<th><spring:message code="log"/></th> <th><spring:message code="log"/></th>
<th class="sort-column cfg_id " isVisible="false" ><spring:message code="cfg_id"/></th> <th column="cfg_id" 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 column="action" class="sort-column service" isVisible="false"><spring:message code="action"/></th>
<th class="sort-column found_time"><spring:message code="found_time"/></th> <th column="found_time" 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 column="recv_time" class="sort-column recv_time" isVisible="false"><spring:message code="recv_time"/></th>
<th class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th> <th column="entrance_id" class="sort-column entrance_id" isVisible="false"><spring:message code="entrance_id"/></th>
<th class="sort-column nat_ip"><spring:message code="nat_ip"/></th> <th column="nat_ip" class="sort-column nat_ip"><spring:message code="nat_ip"/></th>
<th class="sort-column creat_time"><spring:message code="creat_time"/></th> <th column="creat_time" class="sort-column creat_time"><spring:message code="creat_time"/></th>
<th class="sort-column close_time"><spring:message code='close_time'/></th> <th column="close_time" class="sort-column close_time"><spring:message code='close_time'/></th>
<th class="sort-column c2s_pkt_num"><spring:message code="c2s_pkt_num"/></th> <th column="c2s_pkt_num" 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 column="s2c_pkt_num" 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 column="c2s_byte_num" 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 column="s2c_byte_num" class="sort-column s2c_byte_num"><spring:message code="s2c_byte_num"/></th>
<th column="clj_ip" class="sort-column cap_ip" isVisible="false"><spring:message code="clj_ip"/></th>
<th column="transport_layer_protocol" class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th>
<th column="addr_type" class="sort-column addr_type"><spring:message code='addr_type'/></th>
<th column="server_ip" class="sort-column d_ip"><spring:message code="server_ip"/></th>
<th column="client_ip" class="sort-column s_ip"><spring:message code="client_ip"/></th>
<th column="server_port" class="sort-column d_port"><spring:message code="server_port"/></th>
<th column="client_port" class="sort-column s_port"><spring:message code="client_port"/></th>
<th column="deviceid" class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th>
<th column="link_id" class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th>
<th column="encap_type" class="sort-column encap_type"><spring:message code="encap_type"/></th>
<th column="direction" class="sort-column direction"><spring:message code="direction"/></th>
<th column="inner_smac" class="sort-column inner_smac"><spring:message code="inner_smac"/></th>
<th column="inner_dmac" class="sort-column inner_dmac"><spring:message code="inner_dmac"/></th>
<th column="stream_type" 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 column="nest_addr_list" class="sort-column addr_list"><spring:message code="nest_addr_list"/></th>
<th class="sort-column trans_proto"><spring:message code="transport_layer_protocol"/></th> <th column="server_locate" class="sort-column server_locate"><spring:message code='server_locate'/></th>
<th class="sort-column addr_type"><spring:message code='addr_type'/></th> <th column="client_locate" class="sort-column client_locate"><spring:message code='client_locate'/></th>
<th class="sort-column d_ip"><spring:message code="server_ip"/></th> <th column="s_asn" class="sort-column s_asn" isVisible="false"><spring:message code='s_asn'/></th>
<th class="sort-column s_ip"><spring:message code="client_ip"/></th> <th column="d_asn" class="sort-column d_asn" isVisible="false"><spring:message code='d_asn'/></th>
<th class="sort-column d_port"><spring:message code="server_port"/></th> <th column="s_subscribe_id" class="sort-column s_subscribe_id" isVisible="false"><spring:message code='s_subscribe_id'/></th>
<th class="sort-column s_port"><spring:message code="client_port"/></th> <th column="d_subscribe_id" class="sort-column d_subscribe_id" isVisible="false"><spring:message code='d_subscribe_id'/></th>
<th class="sort-column device_id" isVisible="false"><spring:message code="deviceid"/></th> <th column="user_region" class="sort-column user_region" isVisible="false"><spring:message code='user_region'/></th>
<th class="sort-column link_id" isVisible="false"><spring:message code="link_id"/></th> <c:if test="${fns:getUser().isAdmin()}"><th column="scene_file" class="sort-column scene_file"><spring:message code='scene_file'/></th></c:if>
<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 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>
<c:if test="${fns:getUser().isAdmin()}"><th class="sort-column scene_file"><spring:message code='scene_file'/></th></c:if>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>

View File

@@ -286,8 +286,8 @@
<th class="sort-column entrance_id" isVisible="false" column="entrance_id" ><spring:message code="entrance_id"/></th> <th class="sort-column entrance_id" isVisible="false" column="entrance_id" ><spring:message code="entrance_id"/></th>
<th class="sort-column pid" isVisible="false" column="access_url" ><spring:message code='pid'/></th> <th class="sort-column pid" isVisible="false" column="pid" ><spring:message code='pid'/></th>
<th class="sort-column url" column="" ><spring:message code='access_url'/></th> <th class="sort-column url" column="access_url" ><spring:message code='access_url'/></th>
<th class="sort-column log_uri" column="log_uri" ><spring:message code='log_uri'/></th> <th class="sort-column log_uri" column="log_uri" ><spring:message code='log_uri'/></th>
<th class="sort-column referer" column="referer" ><spring:message code='referer'/></th> <th class="sort-column referer" column="referer" ><spring:message code='referer'/></th>
<th class="sort-column level" isVisible="false" column="harm_level" ><spring:message code='harm_level'/></th> <th class="sort-column level" isVisible="false" column="harm_level" ><spring:message code='harm_level'/></th>