diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeAppDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeAppDic.java index a20996933..bcfa43455 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeAppDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeAppDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeAppDic { - private Integer id; +import java.io.Serializable; + +public class CodeAppDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = 8878203808371459079L; + + private Integer id; private String appName; diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeBehaviorTypeDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeBehaviorTypeDic.java index a57814479..585325b32 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeBehaviorTypeDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeBehaviorTypeDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeBehaviorTypeDic { - private Integer id; +import java.io.Serializable; + +public class CodeBehaviorTypeDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = -3093079166837898180L; + + private Integer id; private String behaviorType; diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeBrowserTypeDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeBrowserTypeDic.java index 04c62dd8f..2702fc247 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeBrowserTypeDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeBrowserTypeDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeBrowserTypeDic { - private Integer id; +import java.io.Serializable; + +public class CodeBrowserTypeDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = -2134192971712765277L; + + private Integer id; private String browserType; diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeOsTypeDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeOsTypeDic.java index 86d4c507b..0422ffb7b 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeOsTypeDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeOsTypeDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeOsTypeDic { - private Integer id; +import java.io.Serializable; + +public class CodeOsTypeDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = 3130292317922505634L; + + private Integer id; private String osType; diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeProtocolTypeDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeProtocolTypeDic.java index a671ae85b..c7dd9021b 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeProtocolTypeDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeProtocolTypeDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeProtocolTypeDic { - private Integer id; +import java.io.Serializable; + +public class CodeProtocolTypeDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = 4918506981012927864L; + + private Integer id; private String protocolType; diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeServiceTypeDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeServiceTypeDic.java index 4b4588685..d599dd426 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeServiceTypeDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeServiceTypeDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeServiceTypeDic { - private Integer id; +import java.io.Serializable; + +public class CodeServiceTypeDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = 4684291961768554944L; + + private Integer id; private String serviceType; diff --git a/src/main/java/com/nis/domain/dashboard/codedic/CodeWebServiceDic.java b/src/main/java/com/nis/domain/dashboard/codedic/CodeWebServiceDic.java index d99624362..f0ed0f2b2 100644 --- a/src/main/java/com/nis/domain/dashboard/codedic/CodeWebServiceDic.java +++ b/src/main/java/com/nis/domain/dashboard/codedic/CodeWebServiceDic.java @@ -1,7 +1,14 @@ package com.nis.domain.dashboard.codedic; -public class CodeWebServiceDic { - private Integer id; +import java.io.Serializable; + +public class CodeWebServiceDic implements Serializable { + /** + * + */ + private static final long serialVersionUID = 3695848998373942822L; + + private Integer id; private String website; diff --git a/src/main/java/com/nis/domain/log/NtcAppLog.java b/src/main/java/com/nis/domain/log/NtcAppLog.java new file mode 100644 index 000000000..6ea1a9838 --- /dev/null +++ b/src/main/java/com/nis/domain/log/NtcAppLog.java @@ -0,0 +1,11 @@ +package com.nis.domain.log; + +public class NtcAppLog extends BaseLogEntity { + + /** + * + */ + private static final long serialVersionUID = 6025543701060412591L; + + +} diff --git a/src/main/java/com/nis/domain/log/NtcDdosLog.java b/src/main/java/com/nis/domain/log/NtcDdosLog.java new file mode 100644 index 000000000..32ccf19a1 --- /dev/null +++ b/src/main/java/com/nis/domain/log/NtcDdosLog.java @@ -0,0 +1,81 @@ +package com.nis.domain.log; + +import java.util.Date; + +import com.wordnik.swagger.annotations.ApiModelProperty; + +public class NtcDdosLog extends BaseLogEntity { + + /** + * + */ + 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; + } + +} diff --git a/src/main/java/com/nis/util/CodeDicUtils.java b/src/main/java/com/nis/util/CodeDicUtils.java index 54e6b1a43..580042d61 100644 --- a/src/main/java/com/nis/util/CodeDicUtils.java +++ b/src/main/java/com/nis/util/CodeDicUtils.java @@ -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); diff --git a/src/main/java/com/nis/util/Constants.java b/src/main/java/com/nis/util/Constants.java index 6c74e7fbf..d2d7c1a10 100644 --- a/src/main/java/com/nis/util/Constants.java +++ b/src/main/java/com/nis/util/Constants.java @@ -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- 配置报表业务 diff --git a/src/main/java/com/nis/web/controller/dashboard/DashboardController.java b/src/main/java/com/nis/web/controller/dashboard/DashboardController.java new file mode 100644 index 000000000..e158b45b4 --- /dev/null +++ b/src/main/java/com/nis/web/controller/dashboard/DashboardController.java @@ -0,0 +1,300 @@ +package com.nis.web.controller.dashboard; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import com.nis.util.CodeDicUtils; +import com.nis.util.StringUtil; +import com.nis.util.httpclient.HttpClientUtil; +import com.nis.web.controller.BaseController; +import com.nis.web.dao.dashboard.codedic.CodeResult; +@SuppressWarnings("rawtypes") +@Controller +@RequestMapping(value = "${adminPath}/dashboard") +public class DashboardController extends BaseController{ + + + @RequestMapping(value="logChart") + public String logChart(){ + bsList(); + systemChart("Google Chrome"); + + + return "/dashboard/dashBoardIndex"; + } + + /** + * 活跃IP TOP10 + */ + @RequestMapping(value="ipActive") + @ResponseBody + public List ipActive(){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficIpActive"); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (ArrayList) fromJsonList.get("data"); + logger.info("活跃IP数据"+fromJsonList); + return list; + } catch (Exception e) { + e.printStackTrace(); + logger.error("活跃ip错误"+e); + } + return list; + } + /** + * 协议统计 + */ + @SuppressWarnings("unchecked") + @RequestMapping(value="protocol") + @ResponseBody + public List protocolChart(){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + List resultList = new ArrayList(); + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficProtocol"); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (List) fromJsonList.get("data"); + //标签集合 + List codeList = CodeDicUtils.getCodeList("protocolCode"); + //将数字替换为标签文字 + for (Map map : list) { + Double value1 = Double.parseDouble(map.get("protoType").toString()); + for (CodeResult code : codeList) { + Double value2 = Double.valueOf(code.getCode()); + if(value1.equals(value2)){ + map.put("protoType", code.getItem()); + break; + } + } + resultList.add(map); + } + logger.info("协议统计"+fromJsonList); + return resultList; + } catch (Exception e) { + e.printStackTrace(); + logger.error("协议统计错误"+e); + } + return resultList; + } + /** + * app流量分析 + */ + @RequestMapping(value="app") + @ResponseBody + public List appChart(){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + List resultList = new ArrayList(); + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficApp"); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (List) fromJsonList.get("data"); + //标签集合 + List codeList = CodeDicUtils.getCodeList("appCode"); + //将数字替换为标签文字 + for (Map map : list) { + Double value1 = Double.parseDouble(map.get("appType").toString()); + for (CodeResult code : codeList) { + Double value2 = Double.valueOf(code.getCode()); + if(value1.equals(value2)){ + map.put("appType", code.getItem()); + break; + } + } + resultList.add(map); + } + logger.info("app流量分析"+fromJsonList); + return resultList; + } catch (Exception e) { + e.printStackTrace(); + logger.error("app流量分析错误"+e); + } + return resultList; + } + /** + * 终端用户-操作系统列表 + */ + @RequestMapping(value="osList") + @ResponseBody + public List osList(){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + List resultList = new ArrayList(); + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficOsList"); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (List) fromJsonList.get("data"); + //标签集合 + List codeList = CodeDicUtils.getCodeList("osCode"); + //将数字替换为标签文字 + for (Map map : list) { + Double value1 = Double.parseDouble(map.get("osType").toString()); + for (CodeResult code : codeList) { + Double value2 = Double.valueOf(code.getCode()); + if(value1.equals(value2)){ + map.put("osType", code.getItem()); + break; + } + } + resultList.add(map); + } + logger.info("终端用户-获取操作系统列表"+fromJsonList); + return resultList; + } catch (Exception e) { + e.printStackTrace(); + logger.error("终端用户-获取操作系统列表错误"+e); + } + return resultList; + } + /** + * 终端用户-指定操作系统下浏览器分类流量统计 + */ + @RequestMapping(value="browserChart") + @ResponseBody + public List browserChart(@RequestParam("osType") String osType){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + List resultList = new ArrayList(); + //标签集合 + List codeList1 = CodeDicUtils.getCodeList("osCode"); + //将标签文字转为数字 + Integer os=null; + for (CodeResult codeResult : codeList1) { + if(osType.equalsIgnoreCase(codeResult.getItem())){ + os=Integer.parseInt(codeResult.getCode()); + break; + } + } + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBrowserChart?osType="+os); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (List) fromJsonList.get("data"); + //标签集合 + List codeList2 = CodeDicUtils.getCodeList("browserCode"); + //将数字替换为标签文字 + if(null!=list&&!list.isEmpty()){ + for (Map map : list) { + Double value1 = Double.parseDouble(map.get("bsType").toString()); + for (CodeResult code : codeList2) { + Double value2 = Double.valueOf(code.getCode()); + if(value1.equals(value2)){ + map.put("bsType", code.getItem()); + break; + } + } + resultList.add(map); + } + } + logger.info("终端用户-获取操作系统下浏览器类型"+fromJsonList); + return resultList; + } catch (Exception e) { + e.printStackTrace(); + logger.error("终端用户-获取操作系统下浏览器类型错误"+e); + } + return resultList; + } + /** + * 终端用户-浏览器列表 + */ + @RequestMapping(value="bsList") + @ResponseBody + public List bsList(){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + List resultList = new ArrayList(); + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBsList"); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (List) fromJsonList.get("data"); + //标签集合 + List codeList = CodeDicUtils.getCodeList("browserCode"); + //将数字替换为标签文字 + for (Map map : list) { + Double value1 = Double.parseDouble(map.get("bsType").toString()); + for (CodeResult code : codeList) { + Double value2 = Double.valueOf(code.getCode()); + if(value1.equals(value2)){ + map.put("bsType", code.getItem()); + break; + } + } + resultList.add(map); + } + logger.info("终端用户-获取浏览器列表"+fromJsonList); + return resultList; + } catch (Exception e) { + e.printStackTrace(); + logger.error("终端用户-获取浏览器列表错误"+e); + } + return resultList; + } + /** + * 终端用户-指定操作系统下浏览器分类流量统计 + */ + @RequestMapping(value="systemChart") + @ResponseBody + public List systemChart(@RequestParam("bsType") String bsType){ + Map fromJsonList = new HashMap(); + List list = new ArrayList(); + List resultList = new ArrayList(); + //标签集合 + List codeList1 = CodeDicUtils.getCodeList("bsCode"); + //将标签文字转为数字 + Integer bs=null; + for (CodeResult codeResult : codeList1) { + if(bsType.equalsIgnoreCase(codeResult.getItem())){ + bs=Integer.parseInt(codeResult.getCode()); + break; + } + } + try { + String string = HttpClientUtil.get("http://10.0.6.101:8080/gwall/service/log/v1/trafficBrowserChart?bsType="+bs); + Gson gson = new GsonBuilder().create(); + fromJsonList = gson.fromJson(string, new TypeToken(){}.getType()); + list = (List) fromJsonList.get("data"); + //标签集合 + List codeList2 = CodeDicUtils.getCodeList("osCode"); + //将数字替换为标签文字 + if(null!=list&&!list.isEmpty()){ + for (Map map : list) { + Double value1 = Double.parseDouble(map.get("osType").toString()); + for (CodeResult code : codeList2) { + Double value2 = Double.valueOf(code.getCode()); + if(value1.equals(value2)){ + map.put("osType", code.getItem()); + break; + } + } + resultList.add(map); + } + } + logger.info("终端用户-获取浏览器下操作系统类型"+fromJsonList); + return resultList; + } catch (Exception e) { + e.printStackTrace(); + logger.error("终端用户-获取浏览器下操作系统类型错误"+e); + } + return resultList; + } +} diff --git a/src/main/java/com/nis/web/controller/log/ntc/AppLogController.java b/src/main/java/com/nis/web/controller/log/ntc/AppLogController.java new file mode 100644 index 000000000..d08c120c7 --- /dev/null +++ b/src/main/java/com/nis/web/controller/log/ntc/AppLogController.java @@ -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 page = new Page(request, response); + Map 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 fromJson = gson.fromJson(jsonString, new TypeToken>(){}.getType()); + + if (fromJson.getStatus().intValue() == 200) { +// BeanUtils.copyProperties(fromJson.getData(), page); + Page data = fromJson.getData(); + page.setCount(200); + page.setList(data.getList()); + List 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"; + } + +} diff --git a/src/main/java/com/nis/web/controller/log/ntc/DdosLogController.java b/src/main/java/com/nis/web/controller/log/ntc/DdosLogController.java new file mode 100644 index 000000000..802da000d --- /dev/null +++ b/src/main/java/com/nis/web/controller/log/ntc/DdosLogController.java @@ -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 page = new Page(request, response); + Map 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 fromJson = gson.fromJson(jsonString, new TypeToken>(){}.getType()); + + if (fromJson.getStatus().intValue() == 200) { +// BeanUtils.copyProperties(fromJson.getData(), page); + Page data = fromJson.getData(); + page.setCount(200); + page.setList(data.getList()); + List 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"; + } + +} diff --git a/src/main/java/com/nis/web/controller/log/ntc/FtpController.java b/src/main/java/com/nis/web/controller/log/ntc/FtpLogController.java similarity index 94% rename from src/main/java/com/nis/web/controller/log/ntc/FtpController.java rename to src/main/java/com/nis/web/controller/log/ntc/FtpLogController.java index 9ca44495b..934bbd931 100644 --- a/src/main/java/com/nis/web/controller/log/ntc/FtpController.java +++ b/src/main/java/com/nis/web/controller/log/ntc/FtpLogController.java @@ -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 diff --git a/src/main/java/com/nis/web/controller/log/ntc/IpsecController.java b/src/main/java/com/nis/web/controller/log/ntc/IpsecLogController.java similarity index 94% rename from src/main/java/com/nis/web/controller/log/ntc/IpsecController.java rename to src/main/java/com/nis/web/controller/log/ntc/IpsecLogController.java index e8ab8a476..90de63189 100644 --- a/src/main/java/com/nis/web/controller/log/ntc/IpsecController.java +++ b/src/main/java/com/nis/web/controller/log/ntc/IpsecLogController.java @@ -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 diff --git a/src/main/java/com/nis/web/controller/log/ntc/LogChartController.java b/src/main/java/com/nis/web/controller/log/ntc/LogChartController.java deleted file mode 100644 index 6bb5118c7..000000000 --- a/src/main/java/com/nis/web/controller/log/ntc/LogChartController.java +++ /dev/null @@ -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 ""; - } -} diff --git a/src/main/java/com/nis/web/controller/log/ntc/OpenVpnController.java b/src/main/java/com/nis/web/controller/log/ntc/OpenVpnLogController.java similarity index 88% rename from src/main/java/com/nis/web/controller/log/ntc/OpenVpnController.java rename to src/main/java/com/nis/web/controller/log/ntc/OpenVpnLogController.java index 4bfa47265..ecad610e9 100644 --- a/src/main/java/com/nis/web/controller/log/ntc/OpenVpnController.java +++ b/src/main/java/com/nis/web/controller/log/ntc/OpenVpnLogController.java @@ -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 fromJson = gson.fromJson(jsonString, new TypeToken>(){}.getType()); if (fromJson.getStatus().intValue() == 200) { - BeanUtils.copyProperties(fromJson.getData(), page); +// BeanUtils.copyProperties(fromJson.getData(), page); + Page data = fromJson.getData(); + page.setCount(200); + page.setList(data.getList()); List list = page.getList(); for (NtcOpenVpnLog l : list) { l.setFunctionId(entry.getFunctionId()); diff --git a/src/main/java/com/nis/web/controller/log/ntc/SshController.java b/src/main/java/com/nis/web/controller/log/ntc/SshLogController.java similarity index 94% rename from src/main/java/com/nis/web/controller/log/ntc/SshController.java rename to src/main/java/com/nis/web/controller/log/ntc/SshLogController.java index f42004fdc..d6e01741f 100644 --- a/src/main/java/com/nis/web/controller/log/ntc/SshController.java +++ b/src/main/java/com/nis/web/controller/log/ntc/SshLogController.java @@ -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 diff --git a/src/main/java/com/nis/web/controller/report/NtcDestIpReportController.java b/src/main/java/com/nis/web/controller/report/NtcDestIpReportController.java index 9474a0d6d..786e9da14 100644 --- a/src/main/java/com/nis/web/controller/report/NtcDestIpReportController.java +++ b/src/main/java/com/nis/web/controller/report/NtcDestIpReportController.java @@ -78,7 +78,7 @@ public class NtcDestIpReportController extends BaseController { List _line= new ArrayList(); _line.add(total); _line.addAll(line); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < 40; i++) { showData.put("巴西"+i, _line); } diff --git a/src/main/java/com/nis/web/controller/report/NtcEntranceReportController.java b/src/main/java/com/nis/web/controller/report/NtcEntranceReportController.java index d77f52e2b..e780ecdb0 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEntranceReportController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEntranceReportController.java @@ -78,7 +78,7 @@ public class NtcEntranceReportController extends BaseController { List _line= new ArrayList(); _line.add(total); _line.addAll(line); - for (int i = 0; i < 20; i++) { + for (int i = 0; i < 40; i++) { showData.put(""+i, _line); } diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index b5800d231..cdcfb0d7c 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -163,6 +163,7 @@ ssl_certificate_monitor=SSL Cert Monit response_header_control=Response Header Control ip_website_text_control=IP+Website Keyowrd Control request_task=Request And Task +realtime_report=Realtime Report #==========menu end===================== #==========yewu zidian begin===================== @@ -562,10 +563,7 @@ av_sample_voip_control=VoIPSample Control av_sample_audio_porn_control=Audio Porn Sign Sample Control av_sample_vedio_porn_control=Vedio Porn Sign Sample Control av_sample_control=Sample Control -<<<<<<< HEAD configure_statistics_info=Configure statistics info -======= ->>>>>>> branch 'develop' of http://10.0.6.99/gwall/gwall.git harm_level=Degree of harm src_file=Source File select_file=Please Select Upload File @@ -940,4 +938,15 @@ ddos_ip_drop=DDOS IP ip_reuse_adress_pool_loop=IP reuse address pool app_strategy_monit=APP strategy monitoring app_strategy_drop=APP strategy drop -#=============multipart upload error info================= \ No newline at end of file +#=============function_service_dict==>service_name================= +#=============about report=================== +hour_of_day_report=Daily report +day_of_month_report=Monthly report +month_report=Month report +label_report=Label report +attr_type_report=Attribute report +lwhh_report=Request info report +src_ip_report=Domestic source IP report +dest_ip_report=Destination country IP report +isp_report=ISP report +#=============about report=================== \ No newline at end of file diff --git a/src/main/resources/messages/message_ru.properties b/src/main/resources/messages/message_ru.properties index 57d2a4a25..9583d2cba 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -162,7 +162,8 @@ ssl_certificate_control=SSL certificate control ssl_certificate_monitor=SSL certificate monitor response_header_control=response header control ip_website_text_control=ip website text control -request_task=request and task +request_task=Request And Task +realtime_report=Realtime Report #============menu end====================== #============yewu begin====================== @@ -664,6 +665,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 @@ -816,3 +825,14 @@ ip_reuse_adress_pool_loop=IP reuse address pool app_strategy_monit=APP strategy monitoring app_strategy_drop=APP strategy drop #=============function_service_dict==>service_name================= +#=============about report=================== +hour_of_day_report=daily report +day_of_month_report=monthly report +month_report=month report +label_report=label report +attr_type_report=attribute report +lwhh_report=request info report +src_ip_report=domestic source IP report +dest_ip_report=destination country IP report +isp_report=isp report +#=============about report=================== \ No newline at end of file diff --git a/src/main/resources/messages/message_zh_CN.properties b/src/main/resources/messages/message_zh_CN.properties index 040df42fd..5325e4bc4 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -163,6 +163,7 @@ ssl_certificate_monitor=SSL\u8BC1\u4E66\u76D1\u6D4B response_header_control=\u5E94\u7B54\u5934\u57DF\u7BA1\u63A7 ip_website_text_control=IP+\u7F51\u9875\u5173\u952E\u5B57\u7BA1\u63A7 request_task=\u6765\u51FD\u4E13\u9879 +realtime_report=\u5B9E\u65F6\u62A5\u8868 #==========menu end===================== #==========yewu zidian begin===================== @@ -710,6 +711,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 @@ -1018,3 +1027,14 @@ ip_reuse_adress_pool_loop=IP\u590D\u7528\u5730\u5740\u6C60\u914D\u7F6E app_strategy_monit=APP\u7B56\u7565\u76D1\u6D4B app_strategy_drop=APP\u7B56\u7565\u4E22\u5F03 #=============function_service_dict==>service_name================= +#=============about report=================== +hour_of_day_report=\u5C0F\u65F6\u62A5 +day_of_month_report=\u5F53\u6708\u65E5\u62A5 +month_report=\u6708\u62A5 +label_report=\u6807\u7B7E\u62A5\u8868 +attr_type_report=\u6027\u8D28\u62A5\u8868 +lwhh_report=\u6765\u6587\u51FD\u53F7\u62A5\u8868 +src_ip_report=\u5883\u5185\u6E90IP\u62A5\u8868 +dest_ip_report=\u76EE\u7684\u56FD\u5BB6IP\u62A5\u8868 +isp_report=\u8FD0\u8425\u5546\u5C40\u70B9\u62A5\u8868 +#=============about report=================== \ No newline at end of file diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index caa632ee4..a0d799891 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -241,6 +241,8 @@ ntcIpsecLog=ntcIpsecLogs ntcSshLog=ntcSshLogs ntcMailLog=ntcMailLogs ntcFtpLog=ntcFtpLogs +ntcAppLog=ntcAppLogs +ntcDdosLog=ntcDdosLogs client_connect_timeout=300000 client_read_timeout=300000 diff --git a/src/main/webapp/WEB-INF/views/cfg/whitelist/ipForm.jsp b/src/main/webapp/WEB-INF/views/cfg/whitelist/ipForm.jsp index 516e7759f..ceda73ba1 100644 --- a/src/main/webapp/WEB-INF/views/cfg/whitelist/ipForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/whitelist/ipForm.jsp @@ -2,7 +2,7 @@ <%@ include file="/WEB-INF/include/taglib.jsp"%> -<spring:message code="${cfgName}"></spring:message> +<spring:message code="ip_control_white"></spring:message> + + + +
+

+ APP + +

+ + +
+
+
+
+
+ + + + + + + + + + +
+
+ + + + + +
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+ +
+ + + +
+ + +
+ + +
+
+
+
+ + + + + + + + +
+
+ +
+
+ + + + + + + +
+
+
+
+ + +
+
+
+
+ + + + + + + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
${log.cfgId}${log.entranceId} + + + + + + + ${log.foundTime}${log.recvTime}${log.transProto} + + + + ${log.dIp}${log.sIp}${log.dPort}${log.sPort}${log.deviceId} + + + + ${log.capIp}${log.addrList}${log.userRegion}
+
${page}
+
+
+
+
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/log/ntc/ddosList.jsp b/src/main/webapp/WEB-INF/views/log/ntc/ddosList.jsp new file mode 100644 index 000000000..c1109e513 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/log/ntc/ddosList.jsp @@ -0,0 +1,252 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + + + + + + +
+

+ DDOS + +

+ + +
+
+
+
+
+ + + + + + + + + + +
+
+ + + + + +
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+ +
+ + + +
+ + +
+ + +
+
+
+
+ + + + + + + + +
+
+ +
+
+ + + + + + + +
+
+
+
+ + +
+
+
+
+ + + + + + + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
${log.cfgId}${log.entranceId} + + + + + + + ${log.foundTime}${log.recvTime}${log.transProto} + + + + ${log.dIp}${log.sIp}${log.dPort}${log.sPort}${log.deviceId} + + + + ${log.capIp}${log.addrList}${log.userRegion}${log.attackType}${log.attackStartTime}${log.lastAttackTime}${log.attackMaxPps}${log.attackMaxBps}${log.attackTotalPkt}${log.attackTotalByte}${log.isBlcok}
+
${page}
+
+
+
+
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/report/attrType.jsp b/src/main/webapp/WEB-INF/views/report/attrType.jsp index 68caa5aaf..813ef1f68 100644 --- a/src/main/webapp/WEB-INF/views/report/attrType.jsp +++ b/src/main/webapp/WEB-INF/views/report/attrType.jsp @@ -4,28 +4,37 @@ $(function() { }); - - - - - - - - - - - - - - - - - - +
${title}
- ${xz.itemValue} - ${cloumn}
+ + + + + + - -
${title}
-
${page}
\ No newline at end of file + + + + + + +
${page}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/report/destIp.jsp b/src/main/webapp/WEB-INF/views/report/destIp.jsp index a89db3906..db10d82f9 100644 --- a/src/main/webapp/WEB-INF/views/report/destIp.jsp +++ b/src/main/webapp/WEB-INF/views/report/destIp.jsp @@ -15,16 +15,23 @@ $(function(){ +
${page}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/report/entranceId.jsp b/src/main/webapp/WEB-INF/views/report/entranceId.jsp index 970d3d807..f4298ef1c 100644 --- a/src/main/webapp/WEB-INF/views/report/entranceId.jsp +++ b/src/main/webapp/WEB-INF/views/report/entranceId.jsp @@ -15,16 +15,23 @@ $(function(){ +
${page}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/report/list.jsp b/src/main/webapp/WEB-INF/views/report/list.jsp index af05fc72c..87b444761 100644 --- a/src/main/webapp/WEB-INF/views/report/list.jsp +++ b/src/main/webapp/WEB-INF/views/report/list.jsp @@ -105,7 +105,7 @@ } var ajaxReport=function(url,target){ - //loading(''); + loading(''); $.ajax({ type:'post', async:false, @@ -119,7 +119,7 @@ var ajaxReport=function(url,target){ dataType:"html", success:function(data){ $(target).html(data);//#label - //closeTip(); + closeTip(); } }); }; @@ -192,9 +192,9 @@ var ajaxReport=function(url,target){
- - - + + +