APP特征配置导入页修改,app payload增加配置导入功能.
This commit is contained in:
@@ -5,6 +5,8 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -20,6 +22,7 @@ import com.nis.domain.configuration.AppIpCfg;
|
||||
import com.nis.domain.configuration.AppStringFeatureCfg;
|
||||
import com.nis.domain.configuration.AppTcpCfg;
|
||||
import com.nis.domain.configuration.CfgIndexInfo;
|
||||
import com.nis.domain.configuration.ComplexkeywordCfg;
|
||||
import com.nis.domain.configuration.HttpUrlCfg;
|
||||
import com.nis.domain.configuration.IpPortCfg;
|
||||
import com.nis.domain.configuration.NtcSubscribeIdCfg;
|
||||
@@ -111,43 +114,9 @@ public class AppMultiFeatureCfgService extends BaseService {
|
||||
cfg.setIsCaseInsenstive(0);
|
||||
cfg.setExprType(3);
|
||||
cfg.setMatchMethod(0);
|
||||
String keyword = "";
|
||||
if(cfg.getHeaderType().equals("IP_header")){
|
||||
if(StringUtils.isNoneBlank(cfg.getVer())){
|
||||
keyword += "0-3:"+cfg.getVer()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIhl())){
|
||||
keyword += "4-7:"+cfg.getIhl()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getTos())){
|
||||
keyword += "8-15:"+cfg.getTos()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getTotalLength())){
|
||||
keyword += "16-31:"+cfg.getTotalLength()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getFlags())){
|
||||
keyword += "48-50:"+cfg.getFlags()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getFragmentOffset())){
|
||||
keyword += "56-63:"+cfg.getFragmentOffset()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getProtocol())){
|
||||
keyword += "72-79:"+cfg.getProtocol()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
}else{
|
||||
if(StringUtils.isNoneBlank(cfg.getIcmpType())){
|
||||
keyword += "0-7:"+cfg.getIcmpType()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIcmpCode())){
|
||||
keyword += "8-15:"+cfg.getIcmpCode()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIcmpIdentifier())){
|
||||
keyword += "32-47:"+cfg.getIcmpIdentifier()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
}
|
||||
keyword=keyword.substring(0,keyword.lastIndexOf(Constants.KEYWORD_EXPR));
|
||||
cfg.setCfgKeywords(keyword);
|
||||
this.setL3HeaderKeyword(cfg);
|
||||
appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg);
|
||||
|
||||
}else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
|
||||
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
|
||||
cfg.setHeaderType(null);
|
||||
@@ -205,43 +174,9 @@ public class AppMultiFeatureCfgService extends BaseService {
|
||||
cfg.setIsCaseInsenstive(0);
|
||||
cfg.setExprType(3);
|
||||
cfg.setMatchMethod(0);
|
||||
String keyword = "";
|
||||
if(cfg.getHeaderType().equals("IP_header")){
|
||||
if(StringUtils.isNoneBlank(cfg.getVer())){
|
||||
keyword += "0-3:"+cfg.getVer()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIhl())){
|
||||
keyword += "4-7:"+cfg.getIhl()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getTos())){
|
||||
keyword += "8-15:"+cfg.getTos()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getTotalLength())){
|
||||
keyword += "16-31:"+cfg.getTotalLength()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getFlags())){
|
||||
keyword += "48-50:"+cfg.getFlags()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getFragmentOffset())){
|
||||
keyword += "56-63:"+cfg.getFragmentOffset()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getProtocol())){
|
||||
keyword += "72-79:"+cfg.getProtocol()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
}else{
|
||||
if(StringUtils.isNoneBlank(cfg.getIcmpType())){
|
||||
keyword += "0-7:"+cfg.getIcmpType()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIcmpCode())){
|
||||
keyword += "8-15:"+cfg.getIcmpCode()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIcmpIdentifier())){
|
||||
keyword += "32-47:"+cfg.getIcmpIdentifier()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
}
|
||||
keyword=keyword.substring(0,keyword.lastIndexOf(Constants.KEYWORD_EXPR));
|
||||
cfg.setCfgKeywords(keyword);
|
||||
this.setL3HeaderKeyword(cfg);
|
||||
appMultiFeatureCfgDao.insertAppComplexFeatureCfg(cfg);
|
||||
|
||||
}else if(StringUtils.isNotBlank(cfg.getCfgKeywords())){
|
||||
BeanUtils.copyProperties(entity, cfg,new String[]{"cfgRegionCode","cfgType"});
|
||||
cfg.setHeaderType(null);
|
||||
@@ -259,6 +194,46 @@ public class AppMultiFeatureCfgService extends BaseService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setL3HeaderKeyword(AppComplexFeatureCfg cfg) {
|
||||
String keyword = "";
|
||||
if(cfg.getHeaderType().equals("IP_header")){
|
||||
if(StringUtils.isNoneBlank(cfg.getVer())){
|
||||
keyword += "0-3:"+cfg.getVer()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIhl())){
|
||||
keyword += "4-7:"+cfg.getIhl()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getTos())){
|
||||
keyword += "8-15:"+cfg.getTos()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getTotalLength())){
|
||||
keyword += "16-31:"+cfg.getTotalLength()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getFlags())){
|
||||
keyword += "48-50:"+cfg.getFlags()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getFragmentOffset())){
|
||||
keyword += "56-63:"+cfg.getFragmentOffset()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getProtocol())){
|
||||
keyword += "72-79:"+cfg.getProtocol()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
}else{
|
||||
if(StringUtils.isNoneBlank(cfg.getIcmpType())){
|
||||
keyword += "0-7:"+cfg.getIcmpType()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIcmpCode())){
|
||||
keyword += "8-15:"+cfg.getIcmpCode()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
if(StringUtils.isNotBlank(cfg.getIcmpIdentifier())){
|
||||
keyword += "32-47:"+cfg.getIcmpIdentifier()+Constants.KEYWORD_EXPR;
|
||||
}
|
||||
}
|
||||
keyword=keyword.substring(0,keyword.lastIndexOf(Constants.KEYWORD_EXPR));
|
||||
cfg.setCfgKeywords(keyword);
|
||||
}
|
||||
|
||||
public void auditAppFeatureCfg(AppFeatureIndex entity, Integer isAudit) {
|
||||
ToMaatBean maatBean = new ToMaatBean();
|
||||
MaatCfg maatCfg = new MaatCfg();
|
||||
@@ -460,4 +435,219 @@ public class AppMultiFeatureCfgService extends BaseService {
|
||||
return dataMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* APP Payload L3_HEADER导入操作特殊属性限制
|
||||
* @param baseStringCfg
|
||||
* @param errInfo
|
||||
* @param prop
|
||||
*/
|
||||
public void checkImportAppPayload(AppComplexFeatureCfg baseStringCfg, StringBuffer errInfo, Properties prop) {
|
||||
String headerType = baseStringCfg.getHeaderType();
|
||||
String ver = baseStringCfg.getVer();
|
||||
String ihl = baseStringCfg.getIhl();
|
||||
String tos = baseStringCfg.getTos();
|
||||
String totalLength = baseStringCfg.getTotalLength();
|
||||
String flags = baseStringCfg.getFlags();
|
||||
String fragmentOffset = baseStringCfg.getFragmentOffset();
|
||||
String protocol = baseStringCfg.getProtocol();
|
||||
String icmpType = baseStringCfg.getIcmpType();
|
||||
String icmpCode = baseStringCfg.getIcmpCode();
|
||||
String icmpIdentifier = baseStringCfg.getIcmpIdentifier();
|
||||
|
||||
boolean errorFlag = false;
|
||||
Pattern pattern = Pattern.compile("^([0-9|a-f|A-F]*)$");//.matcher(keyword).matches();
|
||||
StringBuffer errInfoCopy = new StringBuffer();
|
||||
errInfoCopy.append(errInfo);
|
||||
|
||||
if("IP_header".equals(headerType)) {
|
||||
boolean ipHeaderFlag = false;
|
||||
List<Object> ipHeaderList = new ArrayList<>();
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getVer())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getIhl())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getTos())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getTotalLength())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getFlags())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getFragmentOffset())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(StringUtils.isNotBlank(baseStringCfg.getProtocol())) { ipHeaderList.add(baseStringCfg.getVer()); }
|
||||
if(ipHeaderList.size() > 4) {// IP_header最多填写四个属性值
|
||||
errInfo.append("IP_header " + prop.getProperty("l3_header_error")+";");
|
||||
}else {
|
||||
ipHeaderFlag = true;
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
if(StringUtils.isBlank(ver) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "VER ") + ";");
|
||||
}else if(ver.trim().length() != 4 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"VER "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(ver).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"VER "+ " '" + ver + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(ihl) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "IHL ") + ";");
|
||||
}else if(ihl.trim().length() != 4 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"IHL "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(ihl).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"IHL "+ " '" + ihl + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(tos) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "TOS ") + ";");
|
||||
}else if(tos.trim().length() != 8 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"TOS "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(tos).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"TOS "+ " '" + tos + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(totalLength) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "Total Length ") + ";");
|
||||
}else if(totalLength.trim().length() != 16 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"Total Length "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(totalLength).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"Total Length "+ " '" + totalLength + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(flags) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "Flags ") + ";");
|
||||
}else if(flags.trim().length() != 3 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"Flags "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(flags).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"Flags "+ " '" + flags + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(fragmentOffset) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "fragment offset ") + ";");
|
||||
}else if(fragmentOffset.trim().length() != 8 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"fragment offset "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(fragmentOffset).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"fragment offset "+ " '" + fragmentOffset + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(protocol) && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "Protocol ") + ";");
|
||||
}else if(protocol.trim().length() != 8 && ipHeaderFlag){
|
||||
errInfo.append(
|
||||
"Protocol "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(protocol).matches() && ipHeaderFlag) {
|
||||
errInfo.append(
|
||||
"Protocol "+ " '" + protocol + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if((count >0 || count <5) && (!errorFlag)) {
|
||||
errInfo.setLength(0);;
|
||||
errInfo.append(errInfoCopy);
|
||||
}
|
||||
baseStringCfg.setIcmpType(null);
|
||||
baseStringCfg.setIcmpCode(null);
|
||||
baseStringCfg.setIcmpIdentifier(null);
|
||||
}else {
|
||||
int count = 0;
|
||||
if(StringUtils.isBlank(icmpType)) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "ICMP type ") + ";");
|
||||
}else if(icmpType.trim().length() != 8){
|
||||
errInfo.append(
|
||||
"ICMP type "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(icmpType).matches()) {
|
||||
errInfo.append(
|
||||
"ICMP type "+ " '" + icmpType + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(icmpCode)) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "ICMP code ") + ";");
|
||||
}else if(icmpCode.trim().length() != 8){
|
||||
errInfo.append(
|
||||
"ICMP code "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(icmpCode).matches()) {
|
||||
errInfo.append(
|
||||
"ICMP code "+ " '" + icmpCode + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if(StringUtils.isBlank(icmpIdentifier)) {
|
||||
errInfo.append(
|
||||
String.format(prop.getProperty("can_not_null"), "ICMP identifier ") + ";");
|
||||
}else if(icmpIdentifier.trim().length() != 16){
|
||||
errInfo.append(
|
||||
"ICMP identifier "+prop.getProperty("length_error") + ";");
|
||||
errorFlag = true;
|
||||
}else if(!pattern.matcher(icmpIdentifier).matches()) {
|
||||
errInfo.append(
|
||||
"ICMP identifier "+ " '" + icmpIdentifier + "' "+String.format(prop.getProperty("contains_non_hex_char")) + ";");
|
||||
errorFlag = true;
|
||||
}else {
|
||||
count++;
|
||||
}
|
||||
|
||||
if((count >0) && (!errorFlag)) {
|
||||
errInfo.setLength(0);;
|
||||
errInfo.append(errInfoCopy);
|
||||
}
|
||||
baseStringCfg.setVer(null);
|
||||
baseStringCfg.setIhl(null);
|
||||
baseStringCfg.setTos(null);
|
||||
baseStringCfg.setTotalLength(null);
|
||||
baseStringCfg.setFlags(null);
|
||||
baseStringCfg.setFragmentOffset(null);
|
||||
baseStringCfg.setProtocol(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user