app payload特征配置的l3_header配置增加属性,并且必须输入十六进制字符串,后台转为偏移表达式的字符串配置

This commit is contained in:
zhangwei
2018-12-22 20:34:57 +06:00
parent 347ec045d3
commit 8ff231208a
10 changed files with 504 additions and 28 deletions

View File

@@ -8,6 +8,41 @@ $(function(){
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
});
$(".district").on("change", function() {
if($(this).val()=='L3_header'){
$(this).parents(".boxSolid").find(".keywords").addClass("hidden");
$(this).parents(".boxSolid").find(".L3_header").removeClass("hidden");
$(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);
$(this).parents(".boxSolid").find("input:radio[name$='isCaseSenstive'][value=0]").prop("checked",true);
$(this).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",true);
$(this).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",true);
$(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(".matchMethod").removeClass("hidden");
$(this).parents(".boxSolid").find(".exprType").removeClass("hidden");
$(this).parents(".boxSolid").find(".IP_header").addClass("hidden");
$(this).parents(".boxSolid").find(".ICMP_header").addClass("hidden");
$(this).parents(".boxSolid").find("input:radio[name$='isHex']").attr("disabled",false);
$(this).parents(".boxSolid").find("input:radio[name$='isCaseSenstive']").attr("disabled",false);
}
});
$(".headerType").on("change", function() {
if($(this).val()=='IP_header'){
$(this).parents(".boxSolid").find(".ICMP_header").addClass("hidden");
$(this).parents(".boxSolid").find(".IP_header").removeClass("hidden");
}else{
$(this).parents(".boxSolid").find(".IP_header").addClass("hidden");
$(this).parents(".boxSolid").find(".ICMP_header").removeClass("hidden");
}
});
$(".boxSolid:visible").find(".district").each(function(){
$(this).change();
});
$("#serviceId").val($(".action:checked").attr("serviceId"));
$("#cfgFrom").validate({
errorPlacement: function(error,element){
@@ -25,21 +60,35 @@ $(function(){
return;
}
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#keywordError").text()+"</label>");
flag = false;
var length = 0;
$(this).parents(".boxSolid").find(".l3_header_prop").each(function(){
if($(this).val()!=''){
length += 1;
}
})
if(length==0){
$(this).parents(".form-group").find(
"div[for='"
+ $(this).attr("name")
+ "']").html("<label id=\"cfgKeywordsError\" class=\"error\">"+$("#keywordError").text()+"</label>");
flag = false;
}else if(length>4){
$(this).parents(".boxSolid").find(
"div[class='l3_header_tips']").html("<label id=\"l3_header_error\" class=\"error\">"+$("#l3_header_error").text()+"</label>");
flag = false;
}
}
})
});
//keywords非空校验完成校验二进制字符串
$(".boxSolid:visible").find("select[name$='isHexbin']").each(function(){
var isHexbin=$(this).val();
if(isHexbin == 1){ //十六进制
var keywords=$("input[name$='"+$(this).attr("name").replace("isHexbin","cfgKeywords")+"']").val();
keywords=keywords.replace("***and***","")
if(keywords != ''){
keywords=keywords.replace("***and***","");
if(keywords != ''){
if(!(/^([0-9|a-f|A-F]*)$/.test(keywords))){
$(this).parents(".boxSolid").find(
"div[for='"
@@ -109,6 +158,8 @@ var delContent = function(contentClassName, addBtnClassName) {
code="required"></spring:message></span>
<span id="tagsinputTip" style="display:none"><spring:message
code="multiple_keywords_tip"></spring:message></span>
<span id="l3_header_error" style="display:none"><spring:message
code="l3_header_error"></spring:message></span>
<div class="page-content">
<c:forEach items="${serviceList}" var="service">
<c:if test="${cfg.functionId eq service.functionId}">
@@ -143,6 +194,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<input type="hidden" id="appCode" name="appCode" value="${_cfg.appCode}">
<input type="hidden" id="behavCode" name="behavCode" value="${_cfg.behavCode}">
<input type="hidden" id="doLog" name="doLog" value="2">
<c:set var="serviceId" value="${_cfg.serviceId}" />
<!-- 配置域类型 -->
<div class="form-body">
<div class="row">
@@ -191,6 +243,7 @@ var delContent = function(contentClassName, addBtnClassName) {
<spring:message code="${dict.itemValue }" />
</c:if>
</c:forEach>
<c:set var="serviceId" value="${service.serviceId}" />
</c:if>
</label>
</c:forEach>

View File

@@ -256,13 +256,89 @@
</div>
</div>
</div>
<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>
<c:if test="${cfg.serviceId eq 1025 }">
<c:if test="${cfg.headerType eq 'IP_header' }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='VER' />: ${cfg.ver}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='IHL' />: ${cfg.ihl}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='TOS' />: ${cfg.tos}</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='Total Length' />: ${cfg.totalLength}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='Flags' />: ${cfg.flags}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='fragment offset' />: ${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>
</div>
</div>
</div>
</c:if>
<c:if test="${cfg.headerType eq 'ICMP_header' }">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='ICMP type' />: ${cfg.icmpType}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='ICMP code' />: ${cfg.icmpCode}</label>
</div>
</div>
<div class="col-md-4">
<div class="form-group">
<label><spring:message code='ICMP identifier' />: ${cfg.icmpIdentifier}</label>
</div>
</div>
</div>
</c:if>
<c:if test="${empty cfg.headerType}">
<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>
</div>
</div>
</div>
</c:if>
</c:if>
<c:if test="${cfg.serviceId ne 1025 }">
<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>
</div>
</div>
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-8">
<div class="form-group">

View File

@@ -49,7 +49,7 @@
</div>
</div>
</c:if>
<div class="row">
<div class="row keywords">
<c:if test="${isP2pHashCfg}">
<div class="col-md-6">
<div class="form-group">
@@ -108,8 +108,127 @@
</div>
</div>
<div class="row">
<c:if test="${serviceId eq 1025}">
<div class="row L3_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="headerType"/></label>
<div class="col-md-6">
<select name="${cfgName}.headerType" class="selectpicker show-tick form-control headerType">
<option value="IP_header" <c:if test="${cfg.headerType eq 'IP_header'}">selected</c:if> ><spring:message code="IP_HEADER"/></option>
<option value="ICMP_header" <c:if test="${cfg.headerType eq 'ICMP_header'}">selected</c:if> ><spring:message code="ICMP_HEADER"/></option>
</select>
</div>
<div class="l3_header_tips"></div>
</div>
</div>
</div>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="VER" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="4" maxlength="4" type="text" name="${cfgName}.ver" value="${cfg.ver}"><font color="red">4 bit</font>
</div>
<div for="${cfgName}.ver"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="IHL" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="4" maxlength="4" type="text" name="${cfgName}.ihl" value="${cfg.ihl}"><font color="red">4 bit</font>
</div>
<div for="${cfgName}.ihl"></div>
</div>
</div>
</div>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="TOS" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.tos" value="${cfg.tos}"><font color="red">8 bit</font>
</div>
<div for="${cfgName}.tos"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="Total Length" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="16" maxlength="16" type="text" name="${cfgName}.totalLength" value="${cfg.totalLength}"><font color="red">16 bit</font>
</div>
<div for="${cfgName}.totalLength"></div>
</div>
</div>
</div>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="Flags" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="3" maxlength="3" type="text" name="${cfgName}.flags" value="${cfg.flags}"><font color="red">3 bit</font>
</div>
<div for="${cfgName}.flags"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="fragment offset" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.fragmentOffset" value="${cfg.fragmentOffset}"><font color="red">8 bit</font>
</div>
<div for="${cfgName}.fragmentOffset"></div>
</div>
</div>
</div>
<div class="row IP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="Protocol" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.protocol" value="${cfg.protocol}"><font color="red">8 bit</font>
</div>
<div for="${cfgName}.protocol"></div>
</div>
</div>
</div>
<div class="row ICMP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="ICMP type" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.icmpType" value="${cfg.icmpType}"><font color="red">8 bit</font>
</div>
<div for="${cfgName}.icmpType"></div>
</div>
</div>
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="ICMP code" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop hexCheck" minlength="8" maxlength="8" type="text" name="${cfgName}.icmpCode" value="${cfg.icmpCode}"><font color="red">8 bit</font>
</div>
<div for="${cfgName}.icmpCode"></div>
</div>
</div>
</div>
<div class="row ICMP_header hidden">
<div class="col-md-6">
<div class="form-group ">
<label class="control-label col-md-3"><spring:message code="ICMP identifier" /> </label>
<div class="col-md-6">
<input class="form-control l3_header_prop" minlength="16" maxlength="16" type="text" name="${cfgName}.icmpIdentifier" value="${cfg.icmpIdentifier}"><font color="red">16 bit</font>
</div>
<div for="${cfgName}.icmpIdentifier"></div>
</div>
</div>
</div>
</c:if>
<div class="row">
<div class="col-md-6 exprType">
<div class="form-group">
<label class="control-label col-md-3"><font color="red">*</font>
@@ -152,13 +271,13 @@
</div>
</div>
<div class="col-md-6">
<div class="col-md-6 matchMethod">
<div class="form-group ">
<label class="control-label col-md-3"><font color="red">*</font>
<spring:message code="match_method" /></label>
<div class="col-md-6">
<select name="${cfgName}.matchMethod"
class="selectpicker select2 form-control required">
class="selectpicker select2 form-control required ">
<c:if test="${!empty region.configMatchMethod}">
<c:forEach var="matchMethod" items="${fn:split(region.configMatchMethod,',')}">
<c:forEach items="${fns:getDictList('MATCH_METHOD')}" var="matchMethodC">