From 0630775f98e2e894990e677b572fe5ca5dc5cc0b Mon Sep 17 00:00:00 2001 From: zhangdongxu Date: Thu, 19 Jul 2018 19:30:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0PXY=20HTTP=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nis/domain/restful/PxyHttpLog.java | 120 ++++++++++++++++++ .../web/controller/restful/LogController.java | 94 +++++++++++--- .../java/com/nis/web/dao/DfLogSearchDao.xml | 34 ++++- .../com/nis/web/service/BaseLogService.java | 4 +- .../resources/applicationLog-hive.properties | 1 + 5 files changed, 230 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/nis/domain/restful/PxyHttpLog.java diff --git a/src/main/java/com/nis/domain/restful/PxyHttpLog.java b/src/main/java/com/nis/domain/restful/PxyHttpLog.java new file mode 100644 index 0000000..f51273c --- /dev/null +++ b/src/main/java/com/nis/domain/restful/PxyHttpLog.java @@ -0,0 +1,120 @@ +package com.nis.domain.restful; + +import com.nis.domain.LogEntity; +import com.wordnik.swagger.annotations.ApiModelProperty; + +/** + * @ClassName:PxyHttpLog + * @Description:TODO(这里用一句话描述这个类的作用) + * @author (zdx) + * @date 2018年7月19日 下午5:22:30 + * @version V1.0 + */ +public class PxyHttpLog extends LogEntity { + + private static final long serialVersionUID = 6553069367645925554L; + @ApiModelProperty(value="url地址", required=true) + protected String url; + @ApiModelProperty(value="请求行", required=true) + protected String reqLine; + @ApiModelProperty(value="应答行", required=true) + protected String resLine; + @ApiModelProperty(value="Cookie值", required=true) + protected String cookie; + @ApiModelProperty(value="Referer值", required=true) + protected String referer; + @ApiModelProperty(value="UA值", required=true) + protected String userAgent; + @ApiModelProperty(value="Content-Length值", required=true) + protected String contentLen; + @ApiModelProperty(value="Content-Type值", required=true) + protected String contentType; + @ApiModelProperty(value="set-Cookie值", required=true) + protected String setCookie; + @ApiModelProperty(value="原始请求头", required=true) + protected String reqHeader; + @ApiModelProperty(value="原始应答头", required=true) + protected String respHeader; + @ApiModelProperty(value="原始请求体", required=true) + protected String reqBody; + @ApiModelProperty(value="原始应答体", required=true) + protected String respBody; + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + public String getReqLine() { + return reqLine; + } + public void setReqLine(String reqLine) { + this.reqLine = reqLine; + } + public String getResLine() { + return resLine; + } + public void setResLine(String resLine) { + this.resLine = resLine; + } + public String getCookie() { + return cookie; + } + public void setCookie(String cookie) { + this.cookie = cookie; + } + public String getReferer() { + return referer; + } + public void setReferer(String referer) { + this.referer = referer; + } + public String getUserAgent() { + return userAgent; + } + public void setUserAgent(String userAgent) { + this.userAgent = userAgent; + } + public String getContentLen() { + return contentLen; + } + public void setContentLen(String contentLen) { + this.contentLen = contentLen; + } + public String getContentType() { + return contentType; + } + public void setContentType(String contentType) { + this.contentType = contentType; + } + public String getSetCookie() { + return setCookie; + } + public void setSetCookie(String setCookie) { + this.setCookie = setCookie; + } + public String getReqHeader() { + return reqHeader; + } + public void setReqHeader(String reqHeader) { + this.reqHeader = reqHeader; + } + public String getRespHeader() { + return respHeader; + } + public void setRespHeader(String respHeader) { + this.respHeader = respHeader; + } + public String getReqBody() { + return reqBody; + } + public void setReqBody(String reqBody) { + this.reqBody = reqBody; + } + public String getRespBody() { + return respBody; + } + public void setRespBody(String respBody) { + this.respBody = respBody; + } +} diff --git a/src/main/java/com/nis/web/controller/restful/LogController.java b/src/main/java/com/nis/web/controller/restful/LogController.java index 64ab97f..5a94769 100644 --- a/src/main/java/com/nis/web/controller/restful/LogController.java +++ b/src/main/java/com/nis/web/controller/restful/LogController.java @@ -10,7 +10,6 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import com.nis.web.service.AuditLogThread; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @@ -47,6 +46,7 @@ import com.nis.domain.restful.NtcSrcipDomesticReport; import com.nis.domain.restful.NtcSshLog; import com.nis.domain.restful.NtcSslLog; import com.nis.domain.restful.NtcTagReport; +import com.nis.domain.restful.PxyHttpLog; import com.nis.restful.RestServiceException; import com.nis.util.Configurations; import com.nis.util.Constants; @@ -54,6 +54,7 @@ import com.nis.util.DateUtils; import com.nis.util.HiveJDBC; import com.nis.util.JsonMapper; import com.nis.web.controller.BaseRestController; +import com.nis.web.service.AuditLogThread; import com.nis.web.service.HiveSqlService; import com.nis.web.service.ServicesRequestLogService; import com.nis.web.service.restful.LogTestService; @@ -92,7 +93,7 @@ public class LogController extends BaseRestController { Page ntcIpLogPage = null; try { resetTime(ntcIpLog); - testService.queryConditionCheck(auditLogThread, start, ntcIpLog, NtcIpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcIpLog, NtcIpLog.class, page); ntcIpLogPage = new Page(); ntcIpLogPage.setPageNo(page.getPageNo()); ntcIpLogPage.setPageSize(page.getPageSize()); @@ -158,7 +159,7 @@ public class LogController extends BaseRestController { Page ntcHttpLogPage = null; try { resetTime(ntcHttpLog); - testService.queryConditionCheck(auditLogThread, start, ntcHttpLog, NtcHttpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcHttpLog, NtcHttpLog.class, page); ntcHttpLogPage = new Page(); ntcHttpLogPage.setPageNo(page.getPageNo()); ntcHttpLogPage.setPageSize(page.getPageSize()); @@ -218,7 +219,7 @@ public class LogController extends BaseRestController { Page ntcDnsLogPage = null; try { resetTime(ntcDnsLog); - testService.queryConditionCheck(auditLogThread, start, ntcDnsLog, NtcDnsLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcDnsLog, NtcDnsLog.class, page); ntcDnsLogPage = new Page(); ntcDnsLogPage.setPageNo(page.getPageNo()); ntcDnsLogPage.setPageSize(page.getPageSize()); @@ -278,7 +279,7 @@ public class LogController extends BaseRestController { Page ntcMailLogPage = null; try { resetTime(ntcMailLog); - testService.queryConditionCheck(auditLogThread, start, ntcMailLog, NtcMailLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcMailLog, NtcMailLog.class, page); ntcMailLogPage = new Page(); ntcMailLogPage.setPageNo(page.getPageNo()); ntcMailLogPage.setPageSize(page.getPageSize()); @@ -338,7 +339,7 @@ public class LogController extends BaseRestController { Page ntcSslLogPage = null; try { resetTime(ntcSslLog); - testService.queryConditionCheck(auditLogThread, start, ntcSslLog, NtcSslLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcSslLog, NtcSslLog.class, page); ntcSslLogPage = new Page(); ntcSslLogPage.setPageNo(page.getPageNo()); ntcSslLogPage.setPageSize(page.getPageSize()); @@ -398,7 +399,7 @@ public class LogController extends BaseRestController { Page ntcPptpLogPage = null; try { resetTime(ntcPptpLog); - testService.queryConditionCheck(auditLogThread, start, ntcPptpLog, NtcPptpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcPptpLog, NtcPptpLog.class, page); ntcPptpLogPage = new Page(); ntcPptpLogPage.setPageNo(page.getPageNo()); ntcPptpLogPage.setPageSize(page.getPageSize()); @@ -457,7 +458,7 @@ public class LogController extends BaseRestController { Page ntcL2tpLogPage = null; try { resetTime(ntcL2tpLog); - testService.queryConditionCheck(auditLogThread, start, ntcL2tpLog, NtcL2tpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcL2tpLog, NtcL2tpLog.class, page); ntcL2tpLogPage = new Page(); ntcL2tpLogPage.setPageNo(page.getPageNo()); ntcL2tpLogPage.setPageSize(page.getPageSize()); @@ -517,7 +518,7 @@ public class LogController extends BaseRestController { Page ntcOpenvpnLogPage = null; try { resetTime(ntcOpenvpnLog); - testService.queryConditionCheck(auditLogThread, start, ntcOpenvpnLog, NtcOpenvpnLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcOpenvpnLog, NtcOpenvpnLog.class, page); ntcOpenvpnLogPage = new Page(); ntcOpenvpnLogPage.setPageNo(page.getPageNo()); ntcOpenvpnLogPage.setPageSize(page.getPageSize()); @@ -577,7 +578,7 @@ public class LogController extends BaseRestController { Page ntcIpsecLogPage = null; try { resetTime(ntcIpsecLog); - testService.queryConditionCheck(auditLogThread, start, ntcIpsecLog, NtcIpsecLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcIpsecLog, NtcIpsecLog.class, page); ntcIpsecLogPage = new Page(); ntcIpsecLogPage.setPageNo(page.getPageNo()); ntcIpsecLogPage.setPageSize(page.getPageSize()); @@ -637,7 +638,7 @@ public class LogController extends BaseRestController { Page ntcSshLogPage = null; try { resetTime(ntcSshLog); - testService.queryConditionCheck(auditLogThread, start, ntcSshLog, NtcSshLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcSshLog, NtcSshLog.class, page); ntcSshLogPage = new Page(); ntcSshLogPage.setPageNo(page.getPageNo()); ntcSshLogPage.setPageSize(page.getPageSize()); @@ -697,7 +698,7 @@ public class LogController extends BaseRestController { Page ntcFtpLogPage = null; try { resetTime(ntcFtpLog); - testService.queryConditionCheck(auditLogThread, start, ntcFtpLog, NtcFtpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcFtpLog, NtcFtpLog.class, page); ntcFtpLogPage = new Page(); ntcFtpLogPage.setPageNo(page.getPageNo()); ntcFtpLogPage.setPageSize(page.getPageSize()); @@ -755,7 +756,7 @@ public class LogController extends BaseRestController { Page ntcAppLogPage = null; try { resetTime(ntcAppLog); - testService.queryConditionCheck(auditLogThread, start, ntcAppLog, NtcAppLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcAppLog, NtcAppLog.class, page); ntcAppLogPage = new Page(); ntcAppLogPage.setPageNo(page.getPageNo()); ntcAppLogPage.setPageSize(page.getPageSize()); @@ -813,7 +814,7 @@ public class LogController extends BaseRestController { Page ntcDdosLogPage = null; try { resetTime(ntcDdosLog); - testService.queryConditionCheck(auditLogThread, start, ntcDdosLog, NtcDdosLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, ntcDdosLog, NtcDdosLog.class, page); ntcDdosLogPage = new Page(); ntcDdosLogPage.setPageNo(page.getPageNo()); ntcDdosLogPage.setPageSize(page.getPageSize()); @@ -871,7 +872,7 @@ public class LogController extends BaseRestController { Page logPage = null; try { resetTime(dkBehaviorLog); - testService.queryConditionCheck(auditLogThread, start, dkBehaviorLog, DkBehaviorLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, dkBehaviorLog, DkBehaviorLog.class, page); logPage = new Page(); logPage.setPageNo(page.getPageNo()); logPage.setPageSize(page.getPageSize()); @@ -924,7 +925,7 @@ public class LogController extends BaseRestController { Page logPage = null; try { resetTime(mmAvIpLog); - testService.queryConditionCheck(auditLogThread, start, mmAvIpLog, MmAvIpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, mmAvIpLog, MmAvIpLog.class, page); logPage = new Page(); logPage.setPageNo(page.getPageNo()); logPage.setPageSize(page.getPageSize()); @@ -977,7 +978,7 @@ public class LogController extends BaseRestController { Page logPage = null; try { resetTime(mmAvUrlLog); - testService.queryConditionCheck(auditLogThread, start, mmAvUrlLog, MmAvUrlLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, mmAvUrlLog, MmAvUrlLog.class, page); logPage = new Page(); logPage.setPageNo(page.getPageNo()); logPage.setPageSize(page.getPageSize()); @@ -1030,7 +1031,7 @@ public class LogController extends BaseRestController { Page logPage = null; try { resetTime(mmPicIpLog); - testService.queryConditionCheck(auditLogThread, start, mmPicIpLog, MmPicIpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, mmPicIpLog, MmPicIpLog.class, page); logPage = new Page(); logPage.setPageNo(page.getPageNo()); logPage.setPageSize(page.getPageSize()); @@ -1083,7 +1084,7 @@ public class LogController extends BaseRestController { Page logPage = null; try { resetTime(mmPicUrlLog); - testService.queryConditionCheck(auditLogThread, start, mmPicUrlLog, MmPicUrlLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, mmPicUrlLog, MmPicUrlLog.class, page); logPage = new Page(); logPage.setPageNo(page.getPageNo()); logPage.setPageSize(page.getPageSize()); @@ -1137,7 +1138,7 @@ public class LogController extends BaseRestController { Page logPage = null; try { resetTime(mmVoipLog); - testService.queryConditionCheck(auditLogThread, start, mmVoipLog, MmAvIpLog.class, page); + ntcReportService.queryConditionCheck(auditLogThread, start, mmVoipLog, MmAvIpLog.class, page); logPage = new Page(); logPage.setPageNo(page.getPageNo()); logPage.setPageSize(page.getPageSize()); @@ -1179,6 +1180,59 @@ public class LogController extends BaseRestController { return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "VOIP日志检索成功", logPage, 0); } + @RequestMapping(value = "/pxyHttpLogs", method = RequestMethod.GET) + @ApiOperation(value = "PXY HTTP日志查询", httpMethod = "GET", notes = "对日志功能“控制策略”-“HTTP日志”提供数据基础查询服务") + public Map pxyHttpLogs(Page page, PxyHttpLog pxyHttpLog, Model model, HttpServletRequest request, + HttpServletResponse response) { + long start = System.currentTimeMillis(); + AuditLogThread auditLogThread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_GET, + request, null); + + Page logPage = null; + try { + resetTime(pxyHttpLog); + ntcReportService.queryConditionCheck(auditLogThread, start, pxyHttpLog, PxyHttpLog.class, page); + logPage = new Page(); + logPage.setPageNo(page.getPageNo()); + logPage.setPageSize(page.getPageSize()); + String orderBy = ""; + if (null != page.getOrderBy() && !page.getOrderBy().equals("")) { + orderBy = Page.getOrderBySql(PxyHttpLog.class.getSimpleName(), page.getOrderBy()); + } else { + orderBy = "found_Time"; + } + ResultSet rs = HiveSqlService.getResultSet(page, pxyHttpLog, + Configurations.getStringProperty(PxyHttpLog.class.getSimpleName() + "HiveTable", "PXY_HTTP_LOG"), + getCol2Col(), orderBy, null); + Map tableMapping = HiveJDBC.tableMapping(page, null, rs, PxyHttpLog.class, "foundTime", + "recvTime"); + if (tableMapping == null) { + logPage.setList(new ArrayList()); + } else { + List list = tableMapping.get("obj"); + if (list.size() > 0) { + String jsonString = JsonMapper.toJsonString(list); + List List = (java.util.List) JsonMapper.fromJsonList(jsonString, + PxyHttpLog.class); + logPage.setList(List); + logPage.setCount(List.size()); + + } else { + logPage.setList(new ArrayList()); + } + } + } catch (Exception e) { + e.printStackTrace(); + auditLogThread.setExceptionInfo(e.getMessage() + " " + e.getCause()); + logger.error(e); + if (!(e instanceof RestServiceException)) { + e = new RestServiceException(auditLogThread, System.currentTimeMillis() - start, "PXY HTTP日志检索失败"); + } + throw ((RestServiceException) e); + } + return serviceLogResponse(auditLogThread, System.currentTimeMillis() - start, request, "PXY HTTP日志检索成功", + logPage, 0); + } @RequestMapping(value = "/ntcPzReport", method = RequestMethod.GET) @ApiOperation(value = "配置日志总量统计", httpMethod = "GET", notes = "配置命中日志数量实时统计报表,对外提供多种数据表现形式,具体可应用于界面配置命中总量业务、配置报表业务等") public Map ntcPzReport(Page page, NtcPzReport ntcPzReport, Model model, HttpServletRequest request, diff --git a/src/main/java/com/nis/web/dao/DfLogSearchDao.xml b/src/main/java/com/nis/web/dao/DfLogSearchDao.xml index 0bbd857..df87890 100644 --- a/src/main/java/com/nis/web/dao/DfLogSearchDao.xml +++ b/src/main/java/com/nis/web/dao/DfLogSearchDao.xml @@ -525,6 +525,38 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/BaseLogService.java b/src/main/java/com/nis/web/service/BaseLogService.java index f1a5817..ef43b2a 100644 --- a/src/main/java/com/nis/web/service/BaseLogService.java +++ b/src/main/java/com/nis/web/service/BaseLogService.java @@ -221,12 +221,12 @@ public abstract class BaseLogService { } catch (NumberFormatException e) { thread.setExceptionInfo(e.getMessage() + " " + e.getCause()); logger.error(e); - throw new RestServiceException(thread, System.currentTimeMillis() - start, "searchServiceType参数格式错误", + throw new RestServiceException(thread, System.currentTimeMillis() - start, "searchService参数格式错误", RestBusinessCode.param_formate_error.getValue()); } catch (Exception e) { thread.setExceptionInfo(e.getMessage() + " " + e.getCause()); logger.error(e); - throw new RestServiceException(thread, System.currentTimeMillis() - start, "searchServiceType参数错误"); + throw new RestServiceException(thread, System.currentTimeMillis() - start, "searchService参数错误"); } try { checkCloumnIsExist(thread, start, clazz, page); diff --git a/src/main/resources/applicationLog-hive.properties b/src/main/resources/applicationLog-hive.properties index 718d85b..c10c6cf 100644 --- a/src/main/resources/applicationLog-hive.properties +++ b/src/main/resources/applicationLog-hive.properties @@ -18,6 +18,7 @@ MmAvUrlLogHiveTable=MM_AV_URL_LOG MmPicIpLogHiveTable=MM_PIC_IP_LOG MmPicUrlLogHiveTable=MM_PIC_URL_LOG MmVoipIpLogHiveTable=MM_VOIP_LOG +PxyHttpLogHiveTable=PXY_HTTP_LOG