diff --git a/src/main/java/com/nis/web/controller/configuration/statistics/ConfigureStatisticsController.java b/src/main/java/com/nis/web/controller/configuration/statistics/ConfigureStatisticsController.java index 523e918d9..06941c9be 100644 --- a/src/main/java/com/nis/web/controller/configuration/statistics/ConfigureStatisticsController.java +++ b/src/main/java/com/nis/web/controller/configuration/statistics/ConfigureStatisticsController.java @@ -10,6 +10,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Properties; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -133,4 +134,61 @@ public class ConfigureStatisticsController extends BaseController{ map.put("ruleLimit", ruleLimit); return map; } + + //configureStateStatisticsPrint + @ResponseBody + @RequestMapping(value = {"/configureStateStatisticsPrint"}) + public Map configureStateStatisticsPrint(Model model,HttpServletRequest request + ,HttpServletResponse response + ,RedirectAttributes redirectAttributes){ + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + /****************************Request Info Statistics*****************************/ + //1、查询所有有效的service + List serviceDictList = DictUtils.getFunctionServiceDictList(); + //2、查询所有菜单 + List menuList = UserUtils.getMenuCfgList(); + //3、根据来函分页 + RequestInfo requestInfo=new RequestInfo(); + requestInfo.setIsAudit(1); + requestInfo.setIsValid(1); + Page page = new Page(request, response,"r"); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + Page requestPage = requestInfoService.findRequestInfo(page,requestInfo); + List requestInfos=requestPage.getList(); + //4、根据当前页的requestInfo信息查询request统计信息 + List requestStatisticList=new ArrayList(); + if(!StringUtil.isEmpty(requestInfos)){ + Date requestStatisticTime=configureStatisticsService.getRequestStatisticTime(); + String requestStatisticTimeStr=""; + if(!StringUtil.isEmpty(requestStatisticTime)){ + requestStatisticTimeStr=sdf.format(requestStatisticTime); + } + requestStatisticList=configureStatisticsService.getRequestStateStatistics(requestInfos,menuList,requestStatisticTimeStr); + if(!StringUtil.isEmpty(requestStatisticList)){ + for (Iterator iterator = requestStatisticList.iterator(); iterator.hasNext();) { + Map map = (Map) iterator.next(); + for (RequestInfo requestInfoO : requestInfos) { + if(requestInfoO.getId().toString().equals(map.get("request").toString())){ + map.put("request", requestInfoO.getRequestTitle()); + } + } + } + } + model.addAttribute("requestStatisticTime", requestStatisticTimeStr); + } + Properties msgProp = getMsgProp(); + for (int i = 0; i < menuList.size(); i++) { + String property = msgProp.getProperty(menuList.get(i).getCode(), menuList.get(i).getCode()); + menuList.get(i).setCode(property); + } + requestPage.setList(requestStatisticList); + model.addAttribute("requestInfos", requestInfos); + model.addAttribute("serviceList", serviceDictList); + model.addAttribute("page", requestPage); + Map maps=new HashMap(); + maps.put("menuList", menuList); + maps.put("requestStatisticList", requestStatisticList); + return maps; + } } diff --git a/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java b/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java index e4994b965..3fea3d006 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEventBlockController.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.gson.Gson; @@ -331,4 +332,74 @@ public class NtcEventBlockController extends BaseController { return dateTime.toString(TimeConstants.YYYY_MM_DD_HH24_MM_SS); } + + // eventBlockPrint + @ResponseBody + @RequestMapping(value = "eventBlockPrint") + public List eventBlockPrint(@ModelAttribute("log") NtcEventMonitorOrBlockReport log, Model model, + HttpServletRequest request, HttpServletResponse response,RedirectAttributes redirectAttributes) { + try { + PageLog page = new PageLog(request, response); + Map params = new HashMap(); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + // 判断请求参数 + String searchReportStartTime = null; + String searchReportEndTime = null; + String searchTaskStartTime = null; + String searchTaskEndTime = null; + /** + * 对统计时间参数进行处理 开始-结束(一周内[7天]) + */ + String[] serachReportTimes = getSerachTimes(log.getSearchReportStartTime(), log.getSearchReportEndTime()); + searchReportStartTime = serachReportTimes[0]; + searchReportEndTime = serachReportTimes[1]; + /** + * 对报送时间参数进行处理 开始-结束(一周内[7天]) + */ + String[] serachTaskTimes = getSerachTimes(log.getSearchTaskStartTime(), log.getSearchTaskEndTime()); + searchTaskStartTime = serachTaskTimes[0]; + searchTaskEndTime = serachTaskTimes[1]; + + params.put("searchReportStartTime", searchReportStartTime); + params.put("searchReportEndTime", searchReportEndTime); + params.put("searchTaskStartTime", searchTaskStartTime); + params.put("searchTaskEndTime", searchTaskEndTime); + + + if (StringUtils.isNotBlank(log.getTaskIds())) { + params.put("taskIds", log.getTaskIds()); + } + + log.setSearchReportStartTime(searchReportStartTime); + log.setSearchReportEndTime(searchReportEndTime); + log.setSearchTaskStartTime(searchTaskStartTime); + log.setSearchTaskEndTime(searchTaskEndTime); + + params.put("reportType", 1); + + String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report; +// String url = "http://192.168.11.56:8888/galaxy-service/service/log/v1/ntcEventsMonitorOrBlock"; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, + new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + + return list; + } catch (Exception e) { + logger.error("ntc_event_block_report print failed", e); + addMessage(redirectAttributes, "error", "print_failed"); + } + return null; + } } diff --git a/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java b/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java index 382022fcc..41c00d994 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEventKeyProtectionController.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.gson.Gson; @@ -324,4 +325,72 @@ public class NtcEventKeyProtectionController extends BaseController { return dateTime.toString(TimeConstants.YYYY_MM_DD_HH24_MM_SS); } + + //eventKeyProtectionPrint + @ResponseBody + @RequestMapping(value = "eventKeyProtectionPrint") + public List eventKeyProtectionPrint(@ModelAttribute("log") NtcEventKeyProtectionReport log, Model model, + HttpServletRequest request, HttpServletResponse response,RedirectAttributes redirectAttributes) { + try { + PageLog page = new PageLog(request, response); + Map params = new HashMap(); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + + // 判断请求参数 + String searchReportStartTime = null; + String searchReportEndTime = null; + String searchTaskStartTime = null; + String searchTaskEndTime = null; + + /** + * 对统计时间参数进行处理 开始-结束(一周内[7天]) + */ + String[] serachReportTimes = getSerachTimes(log.getSearchReportStartTime(), log.getSearchReportEndTime()); + searchReportStartTime = serachReportTimes[0]; + searchReportEndTime = serachReportTimes[1]; + + /** + * 对报送时间参数进行处理 开始-结束(一周内[7天]) + */ + String[] serachTaskTimes = getSerachTimes(log.getSearchTaskStartTime(), log.getSearchTaskEndTime()); + searchTaskStartTime = serachTaskTimes[0]; + searchTaskEndTime = serachTaskTimes[1]; + + params.put("searchReportStartTime", searchReportStartTime); + params.put("searchReportEndTime", searchReportEndTime); + params.put("searchTaskStartTime", searchTaskStartTime); + params.put("searchTaskEndTime", searchTaskEndTime); + + if (StringUtils.isNotBlank(log.getTaskIds())) { + params.put("taskIds", log.getTaskIds()); + } + + log.setSearchReportStartTime(searchReportStartTime); + log.setSearchReportEndTime(searchReportEndTime); + log.setSearchTaskStartTime(searchTaskStartTime); + log.setSearchTaskEndTime(searchTaskEndTime); + + String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_KEYPROTECTION_Report; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, + new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + return list; + } catch (Exception e) { + logger.error("ntc_event_key_protection_report print failed", e); + addMessage(redirectAttributes, "error", "print_failed"); + } + return null; + } } diff --git a/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java b/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java index d171d3dad..bda8ffa74 100644 --- a/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java +++ b/src/main/java/com/nis/web/controller/report/NtcEventMonitorController.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.gson.Gson; @@ -329,4 +330,74 @@ public class NtcEventMonitorController extends BaseController { return dateTime.toString(TimeConstants.YYYY_MM_DD_HH24_MM_SS); } + + // eventMonitorPrint + @ResponseBody + @RequestMapping(value = "eventMonitorPrint") + public List eventMonitorPrint(@ModelAttribute("log") NtcEventMonitorOrBlockReport log, Model model, + HttpServletRequest request, HttpServletResponse response,RedirectAttributes redirectAttributes) { + try { + PageLog page = new PageLog(request, response); + Map params = new HashMap(); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + + // 判断请求参数 + String searchReportStartTime = null; + String searchReportEndTime = null; + String searchTaskStartTime = null; + String searchTaskEndTime = null; + + /** + * 对统计时间参数进行处理 开始-结束(一周内[7天]) + */ + String[] serachReportTimes = getSerachTimes(log.getSearchReportStartTime(), log.getSearchReportEndTime()); + searchReportStartTime = serachReportTimes[0]; + searchReportEndTime = serachReportTimes[1]; + + /** + * 对报送时间参数进行处理 开始-结束(一周内[7天]) + */ + String[] serachTaskTimes = getSerachTimes(log.getSearchTaskStartTime(), log.getSearchTaskEndTime()); + searchTaskStartTime = serachTaskTimes[0]; + searchTaskEndTime = serachTaskTimes[1]; + + params.put("searchReportStartTime", searchReportStartTime); + params.put("searchReportEndTime", searchReportEndTime); + params.put("searchTaskStartTime", searchTaskStartTime); + params.put("searchTaskEndTime", searchTaskEndTime); + + if (StringUtils.isNotBlank(log.getTaskIds())) { + params.put("taskIds", log.getTaskIds()); + } + + log.setSearchReportStartTime(searchReportStartTime); + log.setSearchReportEndTime(searchReportEndTime); + log.setSearchTaskStartTime(searchTaskStartTime); + log.setSearchTaskEndTime(searchTaskEndTime); + + params.put("reportType", 2); + + String url = Constants.LOG_BASE_URL + Constants.NTC_EVENT_MONITOR_OR_BLOCK_Report; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList<>(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, + new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + return list; + } catch (Exception e) { + logger.error("ntc_event_monitor_report print failed", e); + addMessage(redirectAttributes, "error", "print_failed"); + } + return null; + } } diff --git a/src/main/java/com/nis/web/controller/report/ReportController.java b/src/main/java/com/nis/web/controller/report/ReportController.java index 23a34245a..6b2921094 100644 --- a/src/main/java/com/nis/web/controller/report/ReportController.java +++ b/src/main/java/com/nis/web/controller/report/ReportController.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.google.gson.Gson; @@ -567,4 +568,158 @@ public class ReportController extends BaseController { addMessage(redirectAttributes, "error", "export_failed"); } } + // asnPrint + @ResponseBody + @RequestMapping(value = "asnPrint") + public List asnPrint(@ModelAttribute("log") NtcAsnRecord log, Model model, + HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + PageLog page = new PageLog(request, response); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + Map params = new HashMap(); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + // 判断请求参数 + if (StringUtils.isNotEmpty(log.getSearchAsnType())) { + params.put("searchAsnType", log.getSearchAsnType()); + } else { + params.put("searchAsnType", 1); + } + if (StringUtils.isNotBlank(log.getSearchFoundStartTime()) + && StringUtils.isNotBlank(log.getSearchFoundEndTime())) { + params.put("searchFoundStartTime", log.getSearchFoundStartTime()); + params.put("searchFoundEndTime", log.getSearchFoundEndTime()); + } else { + Calendar time = Calendar.getInstance(); + String searchEndTime = DateUtils.formatDateTime(time.getTime()); + time.add(Calendar.HOUR_OF_DAY, -1); + String searchStartTime = DateUtils.formatDateTime(time.getTime()); + + params.put("searchFoundStartTime", searchStartTime); + params.put("searchFoundEndTime", searchEndTime); + log.setSearchFoundStartTime(searchStartTime); + log.setSearchFoundEndTime(searchEndTime); + } + String url = Constants.LOG_BASE_URL + Constants.NTC_ASN_RECORD; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + return list; + } catch (Exception e) { + logger.error("Ntc_Asn_Record print failed", e); + addMessage(redirectAttributes, "error", "print_failed"); + } + return null; + } + // httpsPrint + @ResponseBody + @RequestMapping(value = "httpsPrint") + public List httpsPrint(@ModelAttribute("log") NtcURLReport log, Model model, + HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) { + try { + PageLog page = new PageLog(request, response); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + Map params = new HashMap(); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + // 判断请求参数 + if (StringUtils.isNotBlank(log.getSearchReportStartTime()) + && StringUtils.isNotBlank(log.getSearchReportEndTime())) { + params.put("searchReportStartTime", log.getSearchReportStartTime()); + params.put("searchReportEndTime", log.getSearchReportEndTime()); + } else { + Calendar time = Calendar.getInstance(); + String searchEndTime = DateUtils.formatDateTime(time.getTime()); + time.add(Calendar.HOUR_OF_DAY, -1); + String searchStartTime = DateUtils.formatDateTime(time.getTime()); + + params.put("searchReportStartTime", searchStartTime); + params.put("searchReportEndTime", searchEndTime); + log.setSearchReportStartTime(searchStartTime); + log.setSearchReportEndTime(searchEndTime); + } + // url参数 + if (StringUtils.isNotBlank(log.getSearchUrl())) { + params.put("searchUrl", log.getSearchUrl()); + } + String url = Constants.LOG_BASE_URL + Constants.NTC_URL_REPORT; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + return list; + } catch (Exception e) { + logger.error("Ntc_HTTPS_Report print failed", e); + addMessage(redirectAttributes, "error", "print_failed"); + } + return null; + } + + // ipRangePrint + @ResponseBody + @RequestMapping(value = "ipRangePrint") + public List ipRangePrint(@ModelAttribute("log") NtcIpRangeReport log, Model model, + HttpServletRequest request, HttpServletResponse response, String seType,RedirectAttributes redirectAttributes) { + try { + PageLog page = new PageLog(request, response); + page.setPageNo(1); + page.setPageSize(Constants.MAX_LOG_EXPORT_SIZE); + Map params = new HashMap(); + params.put("pageSize", page.getPageSize()); + params.put("pageNo", page.getPageNo()); + log.setSearchAreaType(seType); + // 判断请求参数 + // 查询国家 + if (StringUtils.isNotBlank(log.getSearchCountry())) { + params.put("searchCountry", log.getSearchCountry()); + } + // 查询开始IP + if (StringUtils.isNotBlank(log.getSearchStartIp())) { + params.put("searchIp", log.getSearchIp()); + } + // + if (StringUtils.isNotBlank(log.getSearchAreaType())) { + params.put("searchType", log.getSearchAreaType()); + } + if (StringUtils.isNotBlank(log.getSearchAreaType())) { + params.put("searchDesc", log.getSearchDesc()); + } + + String url = Constants.LOG_BASE_URL + Constants.NTC_IP_RANGE_REPORT; + String recv = HttpClientUtil.getMsg(url, params, request); + List list = new ArrayList(); + if (StringUtils.isNotBlank(recv)) { + Gson gson = new GsonBuilder().create(); + LogRecvData fromJson = gson.fromJson(recv, + new TypeToken>() { + }.getType()); + if (fromJson.getStatus().intValue() == 200) { + Page data = fromJson.getData(); + list = data.getList(); + } + } + return list; + } catch (Exception e) { + logger.error("Ntc_Ip_Range_Report print failed", e); + addMessage(redirectAttributes, "error", "print_failed"); + } + return null; + } } diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 3502db054..0f21fa468 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1433,4 +1433,5 @@ contains_non_hex_char=Contains non-hexadecimal characters max_length=Maximum Length min_length=Minimum Length length_error=Length Error -duplicate=Duplicate \ No newline at end of file +duplicate=Duplicate +print=Print \ 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 871639b79..ca57c9641 100644 --- a/src/main/resources/messages/message_ru.properties +++ b/src/main/resources/messages/message_ru.properties @@ -1359,56 +1359,56 @@ translated_dest_ip=\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\ translated_dest_port=\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u041f\u043e\u0440\u0442 \u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f show_ips=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0412\u0441\u0435 IP show_available_ips=\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 IP -radius_log=Radius \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043E\u0432\u0430\u0442\u044C -message_type=\u041A\u043E\u0434 +radius_log=Radius \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c +message_type=\u041a\u043e\u0434 nas_ip=NAS IP-\u0430\u0434\u0440\u0435\u0441 framed_ip=Framed IP-\u0430\u0434\u0440\u0435\u0441 -log_user_name=\u0418\u043C\u044F \u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F -av_tips=\u0421\u0438\u0441\u0442\u0435\u043C\u0430 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043D\u0434\u0435\u043A\u0441\u043D\u0443\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u0430\u0443\u0434\u0438\u043E \u0438 \u0432\u0438\u0434\u0435\u043E \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0432 \u0445\u0432\u043E\u0441\u0442\u0435 \u0430\u0443\u0434\u0438\u043E \u0438 \u0432\u0438\u0434\u0435\u043E \u0444\u0430\u0439\u043B\u043E\u0432. \u0421\u0438\u0441\u0442\u0435\u043C\u0430 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0438\u0434\u0435\u043E \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435\u043C \u0432\u044B\u0448\u0435 1080P. -asn_ip_group_delete=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F IP \u0432 \u044D\u0442\u043E\u0439 \u0433\u0440\u0443\u043F\u043F\u0435 ASN \u0442\u0430\u043A\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u0430. -keyword_log_tips=\u041A\u043E\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u043A\u043B\u044E\u0447\u0435\u0432\u044B\u043C\u0438 \u0441\u043B\u043E\u0432\u0430\u043C\u0438 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u043B\u043E\u0445\u0438\u043C, \u0441 \u043F\u043E\u043C\u043E\u0449\u044C\u044E \u0434\u0435\u0434\u0443\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0433\u043E \u0436\u0443\u0440\u043D\u0430\u043B\u0430 \u0434\u0430\u043D\u043D\u043E\u0439 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 URL \u0434\u043B\u044F \u043F\u043E\u0434\u0430\u0432\u0448\u0435\u0433\u043E \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430. -conn_record=\u0417\u0430\u043F\u0438\u0441\u0438 \u041F\u043E\u0434\u043A\u044E\u0447\u0435\u043D\u0438\u0439 +log_user_name=\u0418\u043c\u044f \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f +av_tips=\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0430\u0443\u0434\u0438\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0445\u0432\u043e\u0441\u0442\u0435 \u0430\u0443\u0434\u0438\u043e \u0438 \u0432\u0438\u0434\u0435\u043e \u0444\u0430\u0439\u043b\u043e\u0432. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0438\u0434\u0435\u043e \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0432\u044b\u0448\u0435 1080P. +asn_ip_group_delete=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f IP \u0432 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 ASN \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0430. +keyword_log_tips=\u041a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043b\u043e\u0445\u0438\u043c, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0434\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u7395u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 URL\ufffd \u0434\u043b\u044f \u043f\u043e\u0434\u0430\u0432\u0448\u0435\u0433\u043e \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u0430. +conn_record=\u0417\u0430\u043f\u0438\u0441\u0438 \u041f\u043e\u0434\u043a\u044e\u0447\u0435\u043d\u0438\u0439 bps=Gbps bps_percent=Bps Percent pps=PPS pps_percent=pps Percent -spoofing_ip_object=\u041F\u0443\u043B IP \u0421\u043F\u0443\u0444\u0438\u043D\u0433 -spoofing_ip_policy=IP \u0421\u043F\u0443\u0444\u0438\u043D\u0433 -action_spoofing=\u0421\u043F\u0443\u0444\u0438\u043D\u0433 -spoofing=\u0421\u043F\u0443\u0444\u0438\u043D\u0433 +spoofing_ip_object=\u041f\u0443\u043b IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433 +spoofing_ip_policy=IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433 +action_spoofing=\u0421\u043f\u0443\u0444\u0438\u043d\u0433 +spoofing=\u0421\u043f\u0443\u0444\u0438\u043d\u0433 service=\u0421\u0435\u0440\u0432\u0438\u0441 s_asn=SASN d_asn=DASN -asn_conn_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 ASN -https_url_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 Http(s) URL +asn_conn_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 ASN +https_url_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 Http(s) URL url=URL sum=SUM -url_count=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E URL -ip_range_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0425\u043E\u0441\u0442\u043E\u0432 \u0432 \u0433\u0440\u0430\u043D\u0438\u0446\u0430\u0445 \u0438 \u0437\u0430 \u0433\u0440\u0430\u043D\u0438\u0446\u0435\u0439 -ip_start=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 IP -ip_end=\u041A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 IP +url_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e URL +ip_range_report=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0425\u043e\u0441\u0442\u043e\u0432 \u0432 \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0438 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439 +ip_start=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP +ip_end=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP ip_start_num=IP Start Num ip_end_num=IP End Num -ip_sub=IP-\u043F\u043E\u0434\u0441\u0435\u0442\u044C -start_ip=\u041D\u0430\u0447\u0430\u043B\u044C\u043D\u044B\u0439 IP -end_ip=\u041A\u043E\u043D\u0435\u0447\u043D\u044B\u0439 IP -action_detail=\u0414\u0435\u0442\u0430\u043B\u044C \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F -pass=\u041F\u0430\u0441 +ip_sub=IP-\u043f\u043e\u0434\u0441\u0435\u0442\u044c +start_ip=\u041d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 IP +end_ip=\u041a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 IP +action_detail=\u0414\u0435\u0442\u0430\u043b\u044c \u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044f +pass=\u041f\u0430\u0441 live_link=\u0410\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0421\u0441\u044b\u043b\u043a\u0430 -area_type=\u0422\u0438\u043F \u0417\u043E\u043D\u044B -dns_group_manage=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 DNS \u0433\u0440\u0443\u043F\u043F\u043E\u0439 -asn_group_manage=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 ASN \u0433\u0440\u0443\u043F\u043F\u043E\u0439 -ip_group_manage=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 IP \u0433\u0440\u0443\u043F\u043F\u043E\u0439 -ip_spoofing_group_manage=\u0423\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u041F\u0443\u043B\u043E\u043C IP \u0421\u043F\u0443\u0444\u0438\u043D\u0433 -min_tcp=\u041C\u0438\u043D. -max_tcp=\u041C\u0430\u043A\u0441. -APP_TCP_SESSION_BYTE=\u0421\u0435\u0430\u043D\u0441 +area_type=\u0422\u0438\u043f \u0417\u043e\u043d\u044b +dns_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 DNS \u0433\u0440\u0443\u043f\u043f\u043e\u0439 +asn_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 ASN \u0433\u0440\u0443\u043f\u043f\u043e\u0439 +ip_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 IP \u0433\u0440\u0443\u043f\u043f\u043e\u0439 +ip_spoofing_group_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u041f\u0443\u043b\u043e\u043c IP \u0421\u043f\u0443\u0444\u0438\u043d\u0433 +min_tcp=\u041c\u0438\u043d. +max_tcp=\u041c\u0430\u043a\u0441. +APP_TCP_SESSION_BYTE=\u0421\u0435\u0430\u043d\u0441 ip_count=Uniq-IP -counnection_count=\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0439 +counnection_count=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 asn=ASN Unique_num=Unique ip=IP -country=\u0421\u0442\u0440\u0430\u043D\u0430 +country=\u0421\u0442\u0440\u0430\u043d\u0430 desc=Desc unique_num=Unique import_limit_is=The maximum import size is @@ -1437,4 +1437,5 @@ contains_non_hex_char=Contains non-hexadecimal characters max_length=Maximum Length min_length=Minimum Length length_error=Length Error -duplicate=Duplicate \ No newline at end of file +duplicate=Duplicate +print=Print \ 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 3ad61cb92..0420f41c7 100644 --- a/src/main/resources/messages/message_zh_CN.properties +++ b/src/main/resources/messages/message_zh_CN.properties @@ -1430,7 +1430,8 @@ config_num=\u914d\u7f6e\u603b\u6570 monitor_num=\u76d1\u6d4b\u6570\u91cf control_num=\u7ba1\u63a7\u6570\u91cf contains_non_hex_char=\u5305\u542b\u975e\u5341\u516d\u8fdb\u5236\u5b57\u7b26 -max_length=\u6700\u5927\u957F\u5EA6 -min_length=\u6700\u5C0F\u957F\u5EA6 -length_error=\u957F\u5EA6\u9519\u8BEF -duplicate=\u91CD\u590D\u7684 \ No newline at end of file +max_length=\u6700\u5927\u957f\u5ea6 +min_length=\u6700\u5c0f\u957f\u5ea6 +length_error=\u957f\u5ea6\u9519\u8bef +duplicate=\u91cd\u590d\u7684 +print=\u6253\u5370 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp b/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp index c88eb4edc..0dcebbcfc 100644 --- a/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp +++ b/src/main/webapp/WEB-INF/views/dashboard/trafficAppTypeList.jsp @@ -88,6 +88,9 @@
  • excel
  • csv    
  • +
    + +


    @@ -115,6 +118,7 @@ + + + + - + <spring:message code="traffic_user_behavior"></spring:message>