邮件日志
This commit is contained in:
@@ -1,11 +1,6 @@
|
||||
package com.nis.domain.log;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.nis.domain.BaseEntity;
|
||||
import com.nis.util.DateUtils;
|
||||
|
||||
public class BaseLogEntity<T> extends BaseEntity<T> {
|
||||
|
||||
|
||||
44
src/main/java/com/nis/domain/log/NtcMailLog.java
Normal file
44
src/main/java/com/nis/domain/log/NtcMailLog.java
Normal file
@@ -0,0 +1,44 @@
|
||||
package com.nis.domain.log;
|
||||
|
||||
public class NtcMailLog extends BaseLogEntity<NtcMailLog> {
|
||||
|
||||
private static final long serialVersionUID = -2848016592975339617L;
|
||||
|
||||
private String mailProto; //邮件协议类型,不可空 SMTP/POP3/IMAP4
|
||||
private String mailFrom;
|
||||
private String mailTo;
|
||||
private String subject;
|
||||
private String emlFile;
|
||||
|
||||
public String getMailProto() {
|
||||
return mailProto;
|
||||
}
|
||||
public void setMailProto(String mailProto) {
|
||||
this.mailProto = mailProto;
|
||||
}
|
||||
public String getMailFrom() {
|
||||
return mailFrom;
|
||||
}
|
||||
public void setMailFrom(String mailFrom) {
|
||||
this.mailFrom = mailFrom;
|
||||
}
|
||||
public String getMailTo() {
|
||||
return mailTo;
|
||||
}
|
||||
public void setMailTo(String mailTo) {
|
||||
this.mailTo = mailTo;
|
||||
}
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
public String getEmlFile() {
|
||||
return emlFile;
|
||||
}
|
||||
public void setEmlFile(String emlFile) {
|
||||
this.emlFile = emlFile;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -299,6 +299,7 @@ public final class Constants {
|
||||
public static final String NTC_OPENVPN_LOG = Configurations.getStringProperty("ntcOpenvpnLog","");
|
||||
public static final String NTC_IPSEC_LOG = Configurations.getStringProperty("ntcIpsecLog","");
|
||||
public static final String NTC_SSH_LOG = Configurations.getStringProperty("ntcSshLog","");
|
||||
public static final String NTC_MAIL_LOG = Configurations.getStringProperty("ntcMailLog","");
|
||||
//报表类型,1- 配置命中总量业务
|
||||
public static final Integer BUSINESSTYPE_CONFIG=Configurations.getIntProperty("businesstype_config", 1);
|
||||
//报表类型,2- 配置报表业务
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.nis.web.controller.log.ntc;
|
||||
|
||||
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.commons.lang3.StringUtils;
|
||||
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.NtcMailLog;
|
||||
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("${adminPath}/log/ntc/mail")
|
||||
public class MailLogController extends BaseController {
|
||||
|
||||
@RequestMapping("list")
|
||||
public String list(@ModelAttribute("log") NtcMailLog log, Model model, HttpServletRequest request, HttpServletResponse response) {
|
||||
try {
|
||||
Page<NtcMailLog> page = new Page<NtcMailLog>(request, response);
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
params.put("pageSize", page.getPageSize());
|
||||
params.put("pageNo", page.getPageNo());
|
||||
initLogSearchValue(log, params);
|
||||
|
||||
String url = Constants.LOG_BASE_URL + Constants.NTC_MAIL_LOG;
|
||||
String recv = HttpClientUtil.getMsg(url, params, request);
|
||||
|
||||
logger.info("查询结果:" + recv);
|
||||
if (StringUtils.isNotBlank(recv)) {
|
||||
Gson gson = new GsonBuilder().create();
|
||||
LogRecvData<NtcMailLog> fromJson = gson.fromJson(recv, new TypeToken<LogRecvData<NtcMailLog>>(){}.getType());
|
||||
if (fromJson.getStatus().intValue() == 200) {
|
||||
BeanUtils.copyProperties(fromJson.getData(), page);
|
||||
List<NtcMailLog> list = page.getList();
|
||||
for (NtcMailLog l : list) {
|
||||
l.setFunctionId(log.getFunctionId());
|
||||
setLogAction(l);
|
||||
}
|
||||
model.addAttribute("page", page);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("查询失败", e);
|
||||
addMessage(model, e.getMessage());
|
||||
}
|
||||
|
||||
return "/log/ntc/mailList";
|
||||
}
|
||||
}
|
||||
@@ -653,6 +653,11 @@ dns_query=query
|
||||
dns_response=response
|
||||
entrance=entrance
|
||||
#dns_sub=DNS_SUB
|
||||
mail_proto=mail protocol
|
||||
mail_from=sender
|
||||
mail_to=receiver
|
||||
subject=subject
|
||||
eml_file=EML file
|
||||
contrl_tunnel=contrl tunnel
|
||||
data_tunnel=data tunnel
|
||||
contrl_message=contrl message
|
||||
|
||||
@@ -479,6 +479,11 @@ dns_query=query
|
||||
dns_response=response
|
||||
entrance=entrance
|
||||
#dns_sub=DNS_SUB
|
||||
mail_proto=mail protocol
|
||||
mail_from=sender
|
||||
mail_to=receiver
|
||||
subject=subject
|
||||
eml_file=EML file
|
||||
contrl_tunnel=contrl tunnel
|
||||
data_tunnel=data tunnel
|
||||
contrl_message=contrl message
|
||||
|
||||
@@ -609,18 +609,13 @@ action_replace=\u66FF\u6362
|
||||
<<<<<<< HEAD
|
||||
action_whitelist=\u767D\u540D\u5355
|
||||
=======
|
||||
action_whitelist=\u767D\u540D\u5355
|
||||
>>>>>>> branch 'develop' of http://10.0.6.99/gwall/gwall.git
|
||||
action_monit=\u76D1\u6D4B
|
||||
file_digest_control=\u6587\u4EF6\u6458\u8981\u7BA1\u63A7
|
||||
bgp_control=BGP\u7BA1\u63A7
|
||||
bgp_ip=bgp Ip
|
||||
xmpp_control=XMPP\u7BA1\u63A7
|
||||
<<<<<<< HEAD
|
||||
xmpp_ip=xmpp Ip
|
||||
=======
|
||||
xmpp_ip=xmpp Ip
|
||||
>>>>>>> branch 'develop' of http://10.0.6.99/gwall/gwall.git
|
||||
#===============protocol IP Import start=================
|
||||
chooseFile=\u9009\u62E9\u6587\u4EF6
|
||||
download=\u6A21\u677F\u4E0B\u8F7D
|
||||
@@ -688,6 +683,11 @@ dns_query=\u8BF7\u6C42
|
||||
dns_response=\u5E94\u7B54
|
||||
entrance=\u51FA\u5165\u53E3
|
||||
#dns_sub=DNS_SUB
|
||||
mail_proto=\u90AE\u4EF6\u534F\u8BAE
|
||||
mail_from=\u53D1\u4EF6\u4EBA
|
||||
mail_to=\u6536\u4EF6\u4EBA
|
||||
subject=\u4E3B\u9898
|
||||
eml_file=EML\u6587\u4EF6
|
||||
contrl_tunnel=\u63A7\u5236\u901A\u9053
|
||||
data_tunnel=\u6570\u636E\u901A\u9053
|
||||
contrl_message=\u63A7\u5236\u62A5\u6587
|
||||
|
||||
@@ -225,7 +225,8 @@ fileUploadCfg=fileUploadSources
|
||||
callbackCfg=commonSources
|
||||
fileDigestCfg=fileDigestSources
|
||||
configIdSources=configPzIdSources
|
||||
logBaseUrl=http://10.0.6.201:8090/galaxy/service/log/v1/
|
||||
#logBaseUrl=http://10.0.6.201:8090/galaxy/service/log/v1/
|
||||
logBaseUrl=http://10.0.6.104:8081/galaxy/service/log/v1/
|
||||
ntcPzReport=ntcPzReport
|
||||
ntcIpLog=ntcIpLogs
|
||||
ntcHttpLog=ntcHttpLogs
|
||||
@@ -236,6 +237,7 @@ ntcL2tpLog=ntcL2tpLogs
|
||||
ntcOpenvpnLog=ntcOpenvpnLogs
|
||||
ntcIpsecLog=ntcIpsecLogs
|
||||
ntcSshLog=ntcSshLogs
|
||||
ntcMailLog=ntcMailLogs
|
||||
|
||||
client_connect_timeout=300000
|
||||
client_read_timeout=300000
|
||||
|
||||
246
src/main/webapp/WEB-INF/views/log/ntc/mailList.jsp
Normal file
246
src/main/webapp/WEB-INF/views/log/ntc/mailList.jsp
Normal file
@@ -0,0 +1,246 @@
|
||||
<%@ page contentType="text/html;charset=UTF-8"%>
|
||||
<%@ include file="/WEB-INF/include/taglib.jsp"%>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
MAIL<spring:message code="log"></spring:message>
|
||||
</title>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
//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();
|
||||
});
|
||||
//筛选功能
|
||||
filterActionInit();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="page-content">
|
||||
<div class="theme-panel hidden-xs hidden-sm">
|
||||
</div>
|
||||
<h3 class="page-title">
|
||||
MAIL<spring:message code="log"></spring:message>
|
||||
<small><spring:message code="date_list"/></small>
|
||||
</h3>
|
||||
<h5 class="page-header"></h5>
|
||||
<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/mail/list" 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 }"/>
|
||||
<!-- 搜索内容与操作按钮栏 -->
|
||||
<div class="col-md-12">
|
||||
<div class="pull-left">
|
||||
<form:select path="serviceType" 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 name="searchFoundStartTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
|
||||
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 name="searchFoundEndTime" type="text" readonly="readonly" maxlength="20" class="form-control Wdate input-medium"
|
||||
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="return 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"/><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 class="control-label"><spring:message code='protocol_type'/>:</label>
|
||||
<form:select path="protocol" class="selectpicker form-control">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="protocol" >
|
||||
<form:option value="${protocol.itemCode}"><spring:message code="${protocol.itemValue}"></spring:message></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label class="control-label"><spring:message code='direct'/>:</label>
|
||||
<form:select path="direction" class="selectpicker form-control">
|
||||
<form:option value=""><spring:message code="select"/></form:option>
|
||||
<c:forEach items="${fns:getDictList('DIRECTION')}" var="direction" >
|
||||
<form:option value="${direction.itemCode}"><spring:message code="${direction.itemValue}"></spring:message></form:option>
|
||||
</c:forEach>
|
||||
</form:select>
|
||||
</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="clj_ip"></spring:message>:</label>
|
||||
<input name="cljIp" type="text" class="form-control" value="${log.cljIp }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="clientip"></spring:message>:</label>
|
||||
<input name="clientIp" type="text" class="form-control" value="${log.clientIp }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<div class="form-group">
|
||||
<label><spring:message code="serverip"></spring:message>:</label>
|
||||
<input name="serverIp" type="text" class="form-control" value="${log.serverIp }"/>
|
||||
</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><input type="checkbox" class="i-checks" id="checkAll"></th>-->
|
||||
<%-- <th>ip<spring:message code="type"/></th> --%>
|
||||
<th><spring:message code="action"/></th>
|
||||
<th><spring:message code="mail_proto"/></th>
|
||||
<th><spring:message code="mail_from"/></th>
|
||||
<th><spring:message code="mail_to"/></th>
|
||||
<th><spring:message code="subject"/></th>
|
||||
<th><spring:message code="eml_file"/></th>
|
||||
<th><spring:message code="client_ip"/></th>
|
||||
<th><spring:message code="client_port"/></th>
|
||||
<th><spring:message code="server_ip"/></th>
|
||||
<th><spring:message code="server_port"/></th>
|
||||
<th><spring:message code="protocol"/></th>
|
||||
<th><spring:message code="entrance_id"/></th>
|
||||
<th><spring:message code="direction"/></th>
|
||||
<th><spring:message code="found_time"/></th>
|
||||
<th><spring:message code="recv_time"/></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 var="_log" items="${page.list }" varStatus="status">
|
||||
<tr>
|
||||
<td>${_log.cfgId }</td>
|
||||
<%-- <td>
|
||||
<c:forEach items="${fns:getDictList('IP_TYPE')}" var="ipType">
|
||||
<c:if test="${ipType.itemCode eq _log.addrType}">${ipType.itemValue}</c:if>
|
||||
</c:forEach>
|
||||
</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>${_log.mailProto }</td>
|
||||
<td>${_log.mailFrom }</td>
|
||||
<td>${_log.mailTo }</td>
|
||||
<td>${_log.subject }</td>
|
||||
<td>${_log.emlFile }</td>
|
||||
<td>${_log.clientIp }</td>
|
||||
<td>${_log.clientPort }</td>
|
||||
<td>${_log.serverIp }</td>
|
||||
<td>${_log.serverPort }</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('LOG_PROTOCOL')}" var="logProtocol">
|
||||
<c:if test="${logProtocol.itemCode eq _log.protocol}">${logProtocol.itemValue}</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('ENTRANCE')}" var="entrance">
|
||||
<c:if test="${entrance.itemCode eq _log.entranceId}"><spring:message code="${entrance.itemValue}"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DIRECTION')}" var="direction">
|
||||
<c:if test="${direction.itemCode eq _log.direction}"><spring:message code="${direction.itemValue}"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${_log.foundTime }</td>
|
||||
<td>${_log.recvTime }</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('DEVICE')}" var="device">
|
||||
<c:if test="${device.itemCode eq _log.deviceId}"><spring:message code="${device.itemValue}"/></c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>
|
||||
<c:forEach items="${fns:getDictList('LOG_STREAM_TYPE')}" var="streamType">
|
||||
<c:if test="${streamType.itemCode eq _log.streamType}">${streamType.itemValue}</c:if>
|
||||
</c:forEach>
|
||||
</td>
|
||||
<td>${_log.cljIp }</td>
|
||||
<td>${_log.nestAddrList }</td>
|
||||
<td>${_log.userRegion }</td>
|
||||
</tr>
|
||||
</c:forEach>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="page">${page}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user