1.修改app payload特征,拆分L3_header为L3_header_IP,L3_header_ICMP,支持偏移量表达式;

2.域名统计界面的域名查询条件,去除id=0(Other)的域名查询;
3.通联关系日志的下拉列表查询条件,增select为空的条件,否则reset时,全部定位在了Other。
This commit is contained in:
zhangwei
2019-01-13 21:32:25 +06:00
parent 1766fd80bd
commit eb0f298058
11 changed files with 397 additions and 79 deletions

View File

@@ -9,9 +9,9 @@ $(function(){
$("#serviceId").val($(this).attr("serviceId"));
});
$(".district").on("change", function() {
if($(this).val()=='L3_header'){
if($(this).val()=='L3_header_IP'||$(this).val()=='L3_header_ICMP'){
$(this).parents(".boxSolid").find(".keywords").addClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").removeClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").find("input[name$='headerType']").val($(this).val());
$(this).parents(".boxSolid").find(".matchMethod").addClass("hidden");
$(this).parents(".boxSolid").find(".exprType").addClass("hidden");
$(this).parents(".boxSolid").find("input:radio[name$='isHex'][value=1]").prop("checked",true);
@@ -21,7 +21,7 @@ $(function(){
$(this).parents(".boxSolid").find(".headerType").change();
}else{
$(this).parents(".boxSolid").find(".keywords").removeClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").addClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").find("input[name$='headerType']").val("");
$(this).parents(".boxSolid").find(".matchMethod").removeClass("hidden");
$(this).parents(".boxSolid").find(".exprType").removeClass("hidden");
$(this).parents(".boxSolid").find(".IP_header").addClass("hidden");
@@ -32,7 +32,7 @@ $(function(){
});
$(".headerType").on("change", function() {
if($(this).val()=='IP_header'){
if($(this).val()=='L3_header_IP'){
$(this).parents(".boxSolid").find(".ICMP_header").addClass("hidden");
$(this).parents(".boxSolid").find(".IP_header").removeClass("hidden");
}else{
@@ -40,10 +40,24 @@ $(function(){
$(this).parents(".boxSolid").find(".ICMP_header").removeClass("hidden");
}
});
$("input:radio[name$='exprType']").on("change",function(){
var exprType = $(this).val();
changeKeywordFormate(exprType,$(this));
});
$(".boxSolid:visible").find(".district").each(function(){
$(this).change();
});
$("#serviceId").val($(".action:checked").attr("serviceId"));
if($("#serviceId").val()==1025 && $("#cfgId").val()!=null){
$("input:radio[name$='exprType']").each(function(){
if($(this).attr("checked") && $(this).val()==3){
changeKeywordFormate($(this).val(),$(this));
}
});
}
$("#cfgFrom").validate({
errorPlacement: function(error,element){
if($(element).parents().hasClass("tagsinput")){
@@ -60,10 +74,9 @@ $(function(){
return;
}
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
var length = 0;
$(this).parents(".boxSolid").find(".l3_header_prop").each(function(){
$(this).parents(".boxSolid").find(".l3_header_prop:visible").each(function(){
if($(this).val()!=''){
length += 1;
}
@@ -82,7 +95,7 @@ $(function(){
}else{
var length = 0;
$(this).parents(".boxSolid").find(".l3_header_prop").each(function(){
$(this).parents(".boxSolid").find(".l3_header_prop:visible").each(function(){
if($(this).val()!=''){
length += 1;
}
@@ -139,7 +152,13 @@ $(function(){
$(".disabled").each(function(){
$(this).remove();
});
$("input[name$='exprType']").attr("disabled",false);
if($("input[name$='exprType']").attr("disabled")){
$("input[name$='exprType']").attr("disabled",false);
}
/* $(".boxSolid:visible").each(function(){
alert($(this).find("select[name$='matchMethod'] option[selected]").val());
}) */
$("#appCode").val($("#specServiceIdId").val());
loading('onloading...');
form.submit();
@@ -172,6 +191,36 @@ var delContent = function(contentClassName, addBtnClassName) {
}); */
$("." + addBtnClassName).removeClass("hidden");
}
function changeKeywordFormate(exprType,obj){
if(exprType==3){
var keywordObj = $(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']");
if($(keywordObj).val().indexOf("***and***")>0){
$(keywordObj).val($(keywordObj).val().split('***and***').join(''));
}
if($(keywordObj).val().indexOf(":")>0){
$(keywordObj).val($(keywordObj).val().substr($(keywordObj).val().indexOf(":")+1));
}
//$(this).parents(".boxSolid").find(".keywords").addClass("hidden");
//$(this).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").attr("id").replace("tags","multipKeywords");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").css("display","block");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").addClass("hexCheck");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").next("div").addClass("hidden");
$(obj).parents(".boxSolid").find(".offsetFeature").removeClass("hidden");
$(obj).parents(".boxSolid").find("input:radio[name$='isHex'][value=1]").prop("checked",true);
$(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive'][value=0]").prop("checked",true);
$(obj).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",true);
$(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",true);
}else{
//$(this).parents(".boxSolid").find(".keywords").removeClass("hidden");
//$(this).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").attr("id").replace("multipKeywords","tags");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").css("display","none");
$(obj).parents(".boxSolid").find(".keywords").find("input[name$='cfgKeywords']").next("div").removeClass("hidden");
$(obj).parents(".boxSolid").find(".offsetFeature").addClass("hidden");
$(obj).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",false);
$(obj).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",false);
}
}
</script>
</head>
<body>
@@ -208,7 +257,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<!-- BEGIN FORM-->
<form id="cfgFrom" action="${ctx}/app/feature/saveAppMultiFeatureCfg"
method="post" class="form-horizontal">
<input type="hidden" name="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="cfgId" id="cfgId" value="${_cfg.cfgId}">
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
@@ -355,7 +404,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="isBreak" value="true"></c:set>
<c:set var="complexCfgIndex"
@@ -368,7 +417,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="complexCfgIndex" value="${complexCfgIndex+1 }"></c:set>
</c:if>
@@ -380,7 +429,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="complexCfgIndex" value="${complexCfgIndex+1 }"></c:set>
</c:otherwise>
@@ -407,7 +456,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<div
class="row boxSolid ${tabName}${status.index}">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
@@ -421,7 +470,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<c:if test="${!isBreak}">
<div
class="row boxSolid ${tabName}${status.index} hidden disabled">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="strCfgIndex"
value="${strCfgIndex+1 }"></c:set>
@@ -434,7 +483,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" name="cfgRegionValue" value="${region.configRegionValue }">
<input type="hidden" name="cfgRegionType" value="${region.regionType }">
<input type="hidden" name="cfgRegionCode1" value="${region.configRegionCode }">
<%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%>
<%@include file="/WEB-INF/views/cfg/app/appCommonFeature.jsp"%>
</div>
<c:set var="strCfgIndex" value="${strCfgIndex+1 }"></c:set>
</c:otherwise>

View File

@@ -257,9 +257,9 @@
</div>
</div>
<c:if test="${cfg.serviceId eq 1025 }">
<c:if test="${cfg.headerType eq 'IP_header' }">
<c:if test="${cfg.district eq 'L3_header_IP' }">
<div class="row">
<div class="col-md-4">
<%-- <div class="col-md-4">
<div class="form-group">
<label><spring:message code='VER' />: ${cfg.ver}</label>
</div>
@@ -268,7 +268,7 @@
<div class="form-group">
<label><spring:message code='IHL' />: ${cfg.ihl}</label>
</div>
</div>
</div> --%>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='TOS' />: ${cfg.tos}</label>
@@ -283,24 +283,24 @@
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='Flags' />: ${cfg.flags}</label>
<label><spring:message code='Protocol' />: ${cfg.protocol}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='fragment offset' />: ${cfg.fragmentOffset}</label>
<label><spring:message code='client_ip' />: ${cfg.fragmentOffset}</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='Protocol' />: ${cfg.protocol}</label>
<label><spring:message code='server_ip' />: ${cfg.flags}</label>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.headerType eq 'ICMP_header' }">
<c:if test="${cfg.district eq 'L3_header_ICMP' }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
@@ -319,11 +319,20 @@
</div>
</div>
</c:if>
<c:if test="${empty cfg.headerType}">
<c:if test="${cfg.district ne 'L3_header_ICMP' and cfg.district ne 'L3_header_IP'}">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label class="keyword-disinline"><spring:message code='keywords' />: ${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
<label class="keyword-disinline"><spring:message code='keywords' />:
<c:choose>
<c:when test="${cfg.exprType eq 3 }">
${fn:substringAfter(cfg.cfgKeywords,":") }
</c:when>
<c:otherwise>
${fn:replace(cfg.cfgKeywords, "***and***", " ")}
</c:otherwise>
</c:choose>
</label>
</div>
</div>
</div>
@@ -333,26 +342,38 @@
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label class="keyword-disinline"><spring:message code='keywords' />: ${fn:replace(cfg.cfgKeywords, "***and***", " ")}</label>
<label class="keyword-disinline"><spring:message code='keywords' />:
${fn:replace(cfg.cfgKeywords, "***and***", " ")}
</label>
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
<c:when test="${cfg.exprType eq 3}"><spring:message code='offset_expression'/></c:when>
</c:choose>
</label>
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='expression_type' />:</label>
<label>
<c:choose>
<c:when test="${cfg.exprType eq 1}"><spring:message code='and_expression'/></c:when>
<c:when test="${cfg.exprType eq 0}"><spring:message code='null_expression'/></c:when>
<c:when test="${cfg.exprType eq 3}"><spring:message code='offset_expression'/></c:when>
</c:choose>
</label>
</div>
</div>
</div>
</div>
<c:if test="${cfg.exprType eq 3 and cfg.district eq 'Payload' }">
<div class="row">
<div class="col-md-8">
<div class="form-group">
<label><spring:message code='offset' />:</label>
${cfg.payloadOffset }
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-8">
<div class="form-group">

View File

@@ -72,7 +72,9 @@
<select id="domain" name="domain" class="selectpicker form-control" data-max-options="10" data-selected-text-format="count > 2" multiple max-width="100px" data-live-search="true" data-live-search-placeholder="search">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${domainList}" var="dict" >
<option value="${dict.id}"><spring:message code="${dict.domain}"></spring:message></option>
<c:if test="${dict.id ne 0 }">
<option value="${dict.id}"><spring:message code="${dict.domain}"></spring:message></option>
</c:if>
</c:forEach>
</select>
</div>

View File

@@ -266,6 +266,7 @@
<div class="form-group">
<label class="control-label"><spring:message code='APP'/></label>
<select id="appSelect" name="appId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${appList}" var="app" >
<option value="${app.code}"><spring:message code="${app.item}"></spring:message></option>
</c:forEach>
@@ -277,6 +278,7 @@
<div class="form-group">
<label class="control-label"><spring:message code='application_layer_protocol'/></label>
<select id="protoSelect" name="protoId" title="<spring:message code="select"/>" class="selectpicker form-control " data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${protocolList}" var="proto" >
<option value="${proto.code}"><spring:message code="${proto.item}"></spring:message></option>
</c:forEach>
@@ -288,6 +290,7 @@
<div class="form-group">
<label class="control-label"><spring:message code="domain_name"/></label>
<select id="webSelect" name="webId" title="<spring:message code="select"/>" class="selectpicker form-control" data-max-options="10" data-selected-text-format="count > 3" multiple data-live-search="true" data-live-search-placeholder="<spring:message code="search"/>">
<option value=""><spring:message code="select"/></option>
<c:forEach items="${webList}" var="web" >
<option value="${web.code}"><spring:message code="${web.item}"></spring:message></option>
</c:forEach>

View File

@@ -193,13 +193,8 @@
// 如果在框架或在对话框中,则弹出提示并跳转到首页
if(self.frameElement && self.frameElement.tagName == "IFRAME" || $('#left').length > 0 || $('.jbox').length > 0){
top.$.jBox.confirm("<spring:message code='login_timeout'/>","<spring:message code='info'/>",function(v,h,f){
if(v=="ok"){
top.location = "${pageContext.request.contextPath }";
}else{
top.location = "${pageContext.request.contextPath }";
}
top.$.jBox.alert("<spring:message code='login_timeout'/>","<spring:message code='info'/>",function(v,h,f){
top.location = "${pageContext.request.contextPath }";
},{buttonsFocus:1});
top.$('.jbox-body .jbox-icon').css('top','55px');
}

View File

@@ -399,7 +399,9 @@ $(function(){
options = $("select[name='"+objNamePrefix+"matchMethod']").find("option[value!=0]");
}
//表单中如果有关键字内容可能输入多个关键字的情况,根据输入关键字个数确定表达式选中情况,不允许手动选中
$("input:radio[name='"+objNamePrefix+"exprType']").attr("disabled",true);
if($("select[name='"+objNamePrefix+"district']").val()!="Payload"){//如果是app 的payload特征可选择表达式
$("input:radio[name='"+objNamePrefix+"exprType']").attr("disabled",true);
}
tagsInputSettings = tagsInputSettings+",#"+tagsId;
}
@@ -412,9 +414,9 @@ $(function(){
onAddTag:function(tag,size){
var reg = new RegExp(/\t|\r|\n/);
if (tag.match(reg)) {
$(this).parents(".col-md-6").next("div").html("<label class='error'>"+$.validator.messages.hasInvisibleChar.replace("{0}","'"+tag+"'")+"</label>");
$(this).parent(".col-md-6").next("div").html("<label class='error'>"+$.validator.messages.hasInvisibleChar.replace("{0}","'"+tag+"'")+"</label>");
}else{
$(this).parents(".col-md-6").next("div").html("");
$(this).parent(".col-md-6").next("div").html("");
}
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
@@ -425,7 +427,7 @@ $(function(){
exprTypeChecked(objNamePrefix,size,options);
},
onRemoveTag:function(tag,size){
$(this).parents(".col-md-6").next("div").html("");
$(this).parent(".col-md-6").next("div").html("");
//var keywordValue = "";
var objNamePrefix = $(this).attr("name").split("cfgKeywords")[0];
/*$("span[class='tag']").each(function(){