1.日志增加app,Ddos 2.修改日志类名3.增加国际化代码及日志nis配置4.修改页面需要的标签类

This commit is contained in:
zhanghongqing
2018-07-11 18:15:59 +08:00
parent d303ffc9d7
commit 34892e5fd8
25 changed files with 1027 additions and 43 deletions

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeAppDic {
import java.io.Serializable;
public class CodeAppDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 8878203808371459079L;
private Integer id;
private String appName;

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeBehaviorTypeDic {
import java.io.Serializable;
public class CodeBehaviorTypeDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = -3093079166837898180L;
private Integer id;
private String behaviorType;

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeBrowserTypeDic {
import java.io.Serializable;
public class CodeBrowserTypeDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = -2134192971712765277L;
private Integer id;
private String browserType;

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeOsTypeDic {
import java.io.Serializable;
public class CodeOsTypeDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3130292317922505634L;
private Integer id;
private String osType;

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeProtocolTypeDic {
import java.io.Serializable;
public class CodeProtocolTypeDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 4918506981012927864L;
private Integer id;
private String protocolType;

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeServiceTypeDic {
import java.io.Serializable;
public class CodeServiceTypeDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 4684291961768554944L;
private Integer id;
private String serviceType;

View File

@@ -1,6 +1,13 @@
package com.nis.domain.dashboard.codedic;
public class CodeWebServiceDic {
import java.io.Serializable;
public class CodeWebServiceDic implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3695848998373942822L;
private Integer id;
private String website;

View File

@@ -0,0 +1,11 @@
package com.nis.domain.log;
public class NtcAppLog extends BaseLogEntity<NtcAppLog> {
/**
*
*/
private static final long serialVersionUID = 6025543701060412591L;
}

View File

@@ -0,0 +1,81 @@
package com.nis.domain.log;
import java.util.Date;
import com.wordnik.swagger.annotations.ApiModelProperty;
public class NtcDdosLog extends BaseLogEntity<NtcDdosLog> {
/**
*
*/
private static final long serialVersionUID = 9080132009178985910L;
@ApiModelProperty(value = "攻击类型", required = true)
protected Integer attackType;
@ApiModelProperty(value = "攻击起始时间", required = true)
protected Date attackStartTime;
@ApiModelProperty(value = "最后一次攻击包时间", required = true)
protected Date lastAttackTime;
@ApiModelProperty(value = "攻击最大流量, 包数/秒", required = true)
protected String attackMaxPps;
@ApiModelProperty(value = "攻击最大流量, bit数/秒", required = true)
protected String attackMaxBps;
@ApiModelProperty(value = "攻击累积包数", required = true)
protected String attackTotalPkt;
@ApiModelProperty(value = "攻击累积字节数", required = true)
protected String attackTotalByte;
@ApiModelProperty(value = "攻击流量是否被丢弃", required = true)
protected Integer isBlcok;
public Integer getAttackType() {
return attackType;
}
public void setAttackType(Integer attackType) {
this.attackType = attackType;
}
public Date getAttackStartTime() {
return attackStartTime;
}
public void setAttackStartTime(Date attackStartTime) {
this.attackStartTime = attackStartTime;
}
public Date getLastAttackTime() {
return lastAttackTime;
}
public void setLastAttackTime(Date lastAttackTime) {
this.lastAttackTime = lastAttackTime;
}
public String getAttackMaxPps() {
return attackMaxPps;
}
public void setAttackMaxPps(String attackMaxPps) {
this.attackMaxPps = attackMaxPps;
}
public String getAttackMaxBps() {
return attackMaxBps;
}
public void setAttackMaxBps(String attackMaxBps) {
this.attackMaxBps = attackMaxBps;
}
public String getAttackTotalPkt() {
return attackTotalPkt;
}
public void setAttackTotalPkt(String attackTotalPkt) {
this.attackTotalPkt = attackTotalPkt;
}
public String getAttackTotalByte() {
return attackTotalByte;
}
public void setAttackTotalByte(String attackTotalByte) {
this.attackTotalByte = attackTotalByte;
}
public Integer getIsBlcok() {
return isBlcok;
}
public void setIsBlcok(Integer isBlcok) {
this.isBlcok = isBlcok;
}
}

View File

@@ -2,7 +2,6 @@ package com.nis.util;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service;
import com.nis.domain.dashboard.codedic.CodeAppDic;
import com.nis.domain.dashboard.codedic.CodeBehaviorTypeDic;
@@ -20,7 +19,7 @@ import com.nis.web.dao.dashboard.codedic.CodeResult;
import com.nis.web.dao.dashboard.codedic.CodeServiceTypeDicDao;
import com.nis.web.dao.dashboard.codedic.CodeWebServiceDicDao;
import com.nis.web.service.SpringContextHolder;
@Service
public class CodeDicUtils {
private final static CodeAppDicDao codeAppDicDao = SpringContextHolder.getBean(CodeAppDicDao.class);
private final static CodeBehaviorTypeDicDao codeBehaviorTypeDicDao = SpringContextHolder.getBean(CodeBehaviorTypeDicDao.class);

View File

@@ -366,6 +366,8 @@ public final class Constants {
public static final String NTC_SSH_LOG = Configurations.getStringProperty("ntcSshLog","");
public static final String NTC_MAIL_LOG = Configurations.getStringProperty("ntcMailLog","");
public static final String NTC_FTP_LOG = Configurations.getStringProperty("ntcFtpLog","");
public static final String NTC_APP_LOG = Configurations.getStringProperty("ntcAppLog", "");
public static final String NTC_DDOS_LOG = Configurations.getStringProperty("ntcDdosLog", "");
//报表类型,1- 配置命中总量业务
public static final Integer BUSINESSTYPE_CONFIG=Configurations.getIntProperty("businesstype_config", 1);
//报表类型,2- 配置报表业务

View File

@@ -0,0 +1,188 @@
package com.nis.web.controller.dashboard;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.google.gson.Gson;
import com.nis.util.JsonMapper;
import com.nis.web.controller.BaseController;
import com.nis.web.service.dashboard.DashboardService;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
@SuppressWarnings({ "rawtypes", "unchecked" })
@RestController
@RequestMapping(value = "${servicePath}/log/v1")
@Api(value = "DashboardServiceController", description = "首页图表基本服务接口")
public class DashboardServiceController extends BaseController{
@Autowired
public DashboardService dashboardService;
/**
* 协议统计
*/
@RequestMapping(value="trafficProtocol", method = RequestMethod.GET)
@ApiOperation(value = "协议统计", httpMethod = "GET", notes = "对应协议统计实时统计查询服务。")
public String trafficProtocol(){
dashboardService.systemList();
Map map = new HashMap();
try {
List<Map> ipActiveChart = dashboardService.protocolChart();
if (ipActiveChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(ipActiveChart);
List<HashMap> list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,
HashMap.class);
map.put("data", list);
logger.info(list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return JsonMapper.toJsonString(map);
}
/**
* 活跃IP TOP10
*/
@RequestMapping(value = "trafficIpActive", method = RequestMethod.GET)
@ApiOperation(value = "活跃IP统计", httpMethod = "GET", notes = "对应活跃IP实时统计查询服务。")
public String trafficIpActive(/*Model model, HttpServletRequest request,
HttpServletResponse response*/) {
Map map = new LinkedHashMap();
try {
List<LinkedHashMap> ipActiveChart = dashboardService.ipActiveChart();
if (ipActiveChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(ipActiveChart);
ArrayList<LinkedHashMap> list = (ArrayList<LinkedHashMap>) JsonMapper.fromJsonList(jsonString,
LinkedHashMap.class);
map.put("data", list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
String jsonString = JsonMapper.toJsonString(map);
return jsonString;
}
/**
* app流量分析 TOP10
*/
@RequestMapping(value = "trafficApp", method = RequestMethod.GET)
@ApiOperation(value = "app流量分析统计", httpMethod = "GET", notes = "对应app流量分析实时统计查询服务。")
public String trafficApp(/*Model model, HttpServletRequest request,
HttpServletResponse response*/) {
Map map = new HashMap();
try {
List<Map> appChart = dashboardService.appChart();
if (appChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(appChart);
List<HashMap> list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,
HashMap.class);
map.put("data", list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return JsonMapper.toJsonString(map);
}
@RequestMapping(value = "trafficOsList", method = RequestMethod.GET)
@ApiOperation(value = "操作系统流量分析统计", httpMethod = "GET", notes = "对应终端用户的操作系统列表显示")
public String trafficOsList(/*,Model model, HttpServletRequest request,
HttpServletResponse response*/) {
Map map = new HashMap();
try {
List<Map> osChart = dashboardService.systemList();
if (osChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(osChart);
List<HashMap> list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,
HashMap.class);
map.put("data", list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return JsonMapper.toJsonString(map);
}
@RequestMapping(value = "trafficBrowserChart", method = RequestMethod.GET)
@ApiOperation(value = "操作系统下浏览器流量分析统计", httpMethod = "GET", notes = "对应终端用户某个操作系统的浏览器分类统计显示")
public String trafficBrowserChart(Integer osType/*,Model model, HttpServletRequest request,
HttpServletResponse response*/) {
Map map = new HashMap();
try {
List<Map> osChart = dashboardService.getBrowserBySystem(osType);
if (osChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(osChart);
List<HashMap> list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,
HashMap.class);
map.put("data", list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return JsonMapper.toJsonString(map);
}
@RequestMapping(value = "trafficBsList", method = RequestMethod.GET)
@ApiOperation(value = "浏览器流量分析统计", httpMethod = "GET", notes = "对应终端用户的浏览器列表显示")
public String trafficBsList(/*,Model model, HttpServletRequest request,
HttpServletResponse response*/) {
Map map = new HashMap();
try {
List<Map> bsChart = dashboardService.browserList();
if (bsChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(bsChart);
List<HashMap> list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,
HashMap.class);
map.put("data", list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return JsonMapper.toJsonString(map);
}
@RequestMapping(value = "trafficSystemChart", method = RequestMethod.GET)
@ApiOperation(value = "浏览器下操作系统流量分析统计", httpMethod = "GET", notes = "对应终端用户某个浏览器的操作系统分类统计显示")
public String trafficSystemChart(Integer bsType/*,Model model, HttpServletRequest request,
HttpServletResponse response*/) {
Map map = new HashMap();
try {
List<Map> bsChart = dashboardService.getSystemBybrowser(bsType);
if (bsChart.size() > 0) {
String jsonString = JsonMapper.toJsonString(bsChart);
List<HashMap> list = (java.util.List<HashMap>) JsonMapper.fromJsonList(jsonString,
HashMap.class);
map.put("data", list);
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return JsonMapper.toJsonString(map);
}
}

View File

@@ -0,0 +1,81 @@
package com.nis.web.controller.log.ntc;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.client.ClientProtocolException;
import org.springframework.beans.BeanUtils;
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 com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.Page;
import com.nis.domain.log.NtcAppLog;
import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/ntcAppLogs")
public class AppLogController extends BaseController{
/**
* @param model
* @param entry
* @param request
* @param response
* @return
* @throws ClientProtocolException
* @throws IOException
*/
@RequestMapping(value={"list",""})
public String list(Model model,@ModelAttribute("log")NtcAppLog entry,HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException {
try {
Page<NtcAppLog> page = new Page<NtcAppLog>(request, response);
Map<String, Object> params=new HashMap<>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//查询值判断
initLogSearchValue(entry,params);
String url = "";
url = Constants.LOG_BASE_URL+Constants.NTC_APP_LOG;
String jsonString = HttpClientUtil.getMsg(url,params,request);
Gson gson = new GsonBuilder().create();
//gson泛型支持
LogRecvData<NtcAppLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcAppLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
// BeanUtils.copyProperties(fromJson.getData(), page);
Page<NtcAppLog> data = fromJson.getData();
page.setCount(200);
page.setList(data.getList());
List<NtcAppLog> list = page.getList();
for (NtcAppLog l : list) {
l.setFunctionId(entry.getFunctionId());
setLogAction(l);
}
model.addAttribute("page", page);
logger.info("查询App日志成功");
}
} catch (Exception e) {
logger.info("查询App日志失败", e);
addMessage(model, e.getMessage());
}
return "/log/ntc/appList";
}
}

View File

@@ -0,0 +1,80 @@
package com.nis.web.controller.log.ntc;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.http.client.ClientProtocolException;
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 com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.nis.domain.Page;
import com.nis.domain.log.NtcDdosLog;
import com.nis.domain.maat.LogRecvData;
import com.nis.util.Constants;
import com.nis.util.httpclient.HttpClientUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/ntcDdosLogs")
public class DdosLogController extends BaseController{
/**
* @param model
* @param entry
* @param request
* @param response
* @return
* @throws ClientProtocolException
* @throws IOException
*/
@RequestMapping(value={"list",""})
public String list(Model model,@ModelAttribute("log")NtcDdosLog entry,HttpServletRequest request, HttpServletResponse response) throws ClientProtocolException, IOException {
try {
Page<NtcDdosLog> page = new Page<NtcDdosLog>(request, response);
Map<String, Object> params=new HashMap<>();
params.put("pageSize", page.getPageSize());
params.put("pageNo", page.getPageNo());
//查询值判断
initLogSearchValue(entry,params);
String url = "";
url = Constants.LOG_BASE_URL+Constants.NTC_DDOS_LOG;
String jsonString = HttpClientUtil.getMsg(url,params,request);
Gson gson = new GsonBuilder().create();
//gson泛型支持
LogRecvData<NtcDdosLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcDdosLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
// BeanUtils.copyProperties(fromJson.getData(), page);
Page<NtcDdosLog> data = fromJson.getData();
page.setCount(200);
page.setList(data.getList());
List<NtcDdosLog> list = page.getList();
for (NtcDdosLog l : list) {
l.setFunctionId(entry.getFunctionId());
setLogAction(l);
}
model.addAttribute("page", page);
logger.info("查询Ddos日志成功");
}
} catch (Exception e) {
logger.info("查询Ddos日志失败", e);
addMessage(model, e.getMessage());
}
return "/log/ntc/ddosList";
}
}

View File

@@ -27,7 +27,7 @@ import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/NtcFtpLogs")
public class FtpController extends BaseController{
public class FtpLogController extends BaseController{
/**
* @param model

View File

@@ -28,7 +28,7 @@ import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/ntcIpsecLogs")
public class IpsecController extends BaseController{
public class IpsecLogController extends BaseController{
/**
* @param model

View File

@@ -1,22 +0,0 @@
package com.nis.web.controller.log.ntc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "/log")
public class LogChartController extends BaseController{
@RequestMapping(value="logChart")
public String logChart(){
return "/log/chart";
}
@RequestMapping(value="ajaxChart")
@ResponseBody
public String ajaxChart(){
return "";
}
}

View File

@@ -28,7 +28,7 @@ import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/ntcOpenvpnLogs")
public class OpenVpnController extends BaseController{
public class OpenVpnLogController extends BaseController{
/**
* @param model
@@ -60,7 +60,10 @@ public class OpenVpnController extends BaseController{
LogRecvData<NtcOpenVpnLog> fromJson = gson.fromJson(jsonString, new TypeToken<LogRecvData<NtcOpenVpnLog>>(){}.getType());
if (fromJson.getStatus().intValue() == 200) {
BeanUtils.copyProperties(fromJson.getData(), page);
// BeanUtils.copyProperties(fromJson.getData(), page);
Page<NtcOpenVpnLog> data = fromJson.getData();
page.setCount(200);
page.setList(data.getList());
List<NtcOpenVpnLog> list = page.getList();
for (NtcOpenVpnLog l : list) {
l.setFunctionId(entry.getFunctionId());

View File

@@ -28,7 +28,7 @@ import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/log/ntc/ntcSshLogs")
public class SshController extends BaseController{
public class SshLogController extends BaseController{
/**
* @param model

View File

@@ -713,6 +713,14 @@ data_tunnel=Data Tuunel
contrl_message=Control Message
data_message=Data Message
user_name=User Name
attack_type=Attack Type
attack_start_time=Attack Start Time
last_attack_time=Last Attack Time
attack_max_pps=Attack Max Pps num/s
attack_max_bps=Attack Max Bps bit/s
attack_total_pkt=Attack Total pkt
attack_total_byte=Attack Total byte
is_blcok=Is Blcok
#===========log end =============
#=============about proxy=========
intercept_policy=Intercept Policy

View File

@@ -664,6 +664,14 @@ data_tunnel=data tunnel
contrl_message=contrl message
data_message=data message
user_name=user name
attack_type=Attack Type
attack_start_time=Attack Start Time
last_attack_time=Last Attack Time
attack_max_pps=Attack Max Pps num/s
attack_max_bps=Attack Max Bps bit/s
attack_total_pkt=Attack Total pkt
attack_total_byte=Attack Total byte
is_blcok=Is Blcok
#===========log end =============
#=============about proxy=========
intercept_policy=intercept policy

View File

@@ -710,6 +710,14 @@ data_tunnel=\u6570\u636E\u901A\u9053
contrl_message=\u63A7\u5236\u62A5\u6587
data_message=\u6570\u636E\u62A5\u6587
user_name=\u7528\u6237\u540D\u79F0
attack_type=\u653B\u51FB\u7C7B\u578B
attack_start_time=\u653B\u51FB\u8D77\u59CB\u65F6\u95F4
last_attack_time=\u6700\u540E\u4E00\u6B21\u653B\u51FB\u5305\u65F6\u95F4
attack_max_pps=\u653B\u51FB\u6700\u5927\u6D41\u91CF \u5305\u6570/\u79D2
attack_max_bps=\u653B\u51FB\u6700\u5927\u6D41\u91CF bit\u6570/\u79D2
attack_total_pkt=\u653B\u51FB\u7D2F\u79EF\u5305\u6570
attack_total_byte=\u653B\u51FB\u7D2F\u79EF\u5B57\u8282\u6570
is_blcok=\u653B\u51FB\u6D41\u91CF\u662F\u5426\u88AB\u4E22\u5F03
#===========log end =============
#=============about proxy=========
intercept_policy=\u62E6\u622A\u7B56\u7565

View File

@@ -241,6 +241,8 @@ ntcIpsecLog=ntcIpsecLogs
ntcSshLog=ntcSshLogs
ntcMailLog=ntcMailLogs
ntcFtpLog=ntcFtpLogs
ntcAppLog=ntcAppLogs
ntcDdosLog=ntcDdosLogs
client_connect_timeout=300000
client_read_timeout=300000

View File

@@ -0,0 +1,234 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#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",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
});
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/log/ntc/ntcAppLogs");
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
APP
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/ntcAppLogs" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<form:option value="16"><spring:message code="action_reject"/></form:option>
<form:option value="1"><spring:message code="action_monit"/></form:option>
</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="page()"> <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>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<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:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="protocol_type"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="direct"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance_id"/></label>
<input id=entranceId name="entranceId" class="form-control" type="text" value="${log.entranceId}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code='cfg_id'/></th>
<th><spring:message code='entrance_id'/></th>
<th><spring:message code="action"/></th>
<th><spring:message code='direct'/></th>
<th><spring:message code='found_time'/></th>
<th><spring:message code='recv_time'/></th>
<th><spring:message code='protocol'/></th>
<th><spring:message code='addr_type'/></th>
<th><spring:message code='serverip'/></th>
<th><spring:message code='clientip'/></th>
<th><spring:message code='serverport'/></th>
<th><spring:message code='clientport'/></th>
<th><spring:message code='deviceid'/></th>
<th><spring:message code='stream_type'/></th>
<th><spring:message code='clj_ip'/></th>
<th><spring:message code='nest_addr_list'/></th>
<th><spring:message code='user_region'/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
<tr>
<td>${log.cfgId}</td>
<td>${log.entranceId}</td>
<td>
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.foundTime}</td>
<td>${log.recvTime}</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>${log.dIp}</td>
<td>${log.sIp}</td>
<td>${log.dPort}</td>
<td>${log.sPort}</td>
<td>${log.deviceId}</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>
</td>
<td>${log.capIp}</td>
<td>${log.addrList}</td>
<td>${log.userRegion}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,252 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
//筛选功能
filterActionInit();
//reset
$("#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",'');
$(':input','#searchForm')
.not(':button,:submit,:reset,:hidden')
.attr("value",'');
$("#searchForm")[0].reset();
});
});
//查询
function page(n,s){
$("#intype").attr("name",$("#seltype").val());
$("#pageNo").val(n);
$("#pageSize").val(s);
$("#searchForm").attr("action","${ctx}/log/ntc/ntcDdosLogs");
$("#searchForm").submit();
return false;
}
</script>
</head>
<body>
<div class="page-content">
<h3 class="page-title">
DDOS
<small><spring:message code="date_list"/></small>
</h3>
<h5 class="page-header"></h5>
<div class="row">
<div class="col-md-12">
<div class="portlet">
<div class="portlet-body">
<div class="row" >
<form:form id="searchForm" modelAttribute="log" action="${ctx}/log/ntc/ntcDdosLogs" method="post" class="form-search">
<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
<input id="functionId" name="functionId" type="hidden" value="${log.functionId}"/>
<!-- 筛选按钮展开状态-->
<input id="isFilterAction" name="isFilterAction" type="hidden" value="${log.isFilterAction }"/>
<sys:tableSort id="orderBy" name="orderBy" value="${page.orderBy}" callback="page();"/>
<!-- 搜索内容与操作按钮栏 -->
<div class="col-md-12">
<div class="pull-left">
<form:select path="service" class="selectpicker select2 input-small">
<form:option value=""><spring:message code="action"/></form:option>
<form:option value="16"><spring:message code="action_reject"/></form:option>
<form:option value="1"><spring:message code="action_monit"/></form:option>
</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="page()"> <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>
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"></spring:message> <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<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:;">
<i class="icon-wrench"></i>
</a>
</div>
</div>
<!-- 筛选搜索内容栏默认隐藏-->
<div class="col-md-12 filter-action-select-panle hide" >
<div class="row">
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="protocol_type"/></label>
<c:set var="select"><spring:message code='select'/></c:set>
<form:select path="transProto" class="selectpicker select2 form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="dict">
<form:option value="${dict.itemCode}" ><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="direct"/></label>
<form:select path="direction" class="selectpicker select2 form-control">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dict">
<form:option value="${dict.itemCode}"><spring:message code="${dict.itemValue}"/></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance_id"/></label>
<input id=entranceId name="entranceId" class="form-control" type="text" value="${log.entranceId}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="entrance"/></label>
<form:select path="entranceId" class="selectpicker form-control" data-live-search="true" data-live-search-placeholder="search">
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance" >
<form:option value="${entrance.itemCode}"><spring:message code="${entrance.itemValue}"></spring:message></form:option>
</c:forEach>
</form:select>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="clientip"/></label>
<input id="sIp" name="sIp" class="form-control" type="text" value="${log.sIp}"/>
</div>
</div>
<div class="col-md-2">
<div class="form-group">
<label><spring:message code="serverip"/></label>
<input id="dIp" name="dIp" class="form-control" type="text" value="${log.dIp}"/>
</div>
</div>
</div>
</div>
<!-- /筛选搜索内容栏 结束-->
</form:form>
</div>
<div class="table-responsive">
<sys:message content="${message}"/>
<table id="contentTable" class="table table-striped table-bordered table-condensed text-nowrap">
<thead>
<tr>
<th><spring:message code='cfg_id'/></th>
<th><spring:message code='entrance_id'/></th>
<th><spring:message code="action"/></th>
<th><spring:message code='direct'/></th>
<th><spring:message code='found_time'/></th>
<th><spring:message code='recv_time'/></th>
<th><spring:message code='protocol'/></th>
<th><spring:message code='addr_type'/></th>
<th><spring:message code='serverip'/></th>
<th><spring:message code='clientip'/></th>
<th><spring:message code='serverport'/></th>
<th><spring:message code='clientport'/></th>
<th><spring:message code='deviceid'/></th>
<th><spring:message code='stream_type'/></th>
<th><spring:message code='clj_ip'/></th>
<th><spring:message code='nest_addr_list'/></th>
<th><spring:message code='user_region'/></th>
<th><spring:message code='attack_type'/></th>
<th><spring:message code='attack_start_time'/></th>
<th><spring:message code='last_attack_time'/></th>
<th><spring:message code='attack_max_pps'/></th>
<th><spring:message code='attack_max_bps'/></th>
<th><spring:message code='attack_total_pkt'/></th>
<th><spring:message code='attack_total_byte'/></th>
<th><spring:message code='is_blcok'/></th>
</tr>
</thead>
<tbody>
<c:forEach items="${page.list}" var="log" varStatus="status" step="1">
<tr>
<td>${log.cfgId}</td>
<td>${log.entranceId}</td>
<td>
<c:if test="${log.action eq 16 }"><spring:message code="action_reject"/></c:if>
<c:if test="${log.action eq 1 }"><spring:message code="action_monit"/></c:if>
</td>
<td>
<c:forEach items="${fns:getDictList('DIRECTION')}" var="dic">
<c:if test="${log.direction==dic.itemCode}"><spring:message code="${dic.itemValue }"/></c:if>
</c:forEach>
</td>
<td>${log.foundTime}</td>
<td>${log.recvTime}</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>${log.dIp}</td>
<td>${log.sIp}</td>
<td>${log.dPort}</td>
<td>${log.sPort}</td>
<td>${log.deviceId}</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>
</td>
<td>${log.capIp}</td>
<td>${log.addrList}</td>
<td>${log.userRegion}</td>
<td>${log.attackType}</td>
<td>${log.attackStartTime}</td>
<td>${log.lastAttackTime}</td>
<td>${log.attackMaxPps}</td>
<td>${log.attackMaxBps}</td>
<td>${log.attackTotalPkt}</td>
<td>${log.attackTotalByte}</td>
<td>${log.isBlcok}</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="page">${page}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>