diff --git a/src/main/java/com/nis/domain/restful/CommonSourceFieldCfg.java b/src/main/java/com/nis/domain/restful/CommonSourceFieldCfg.java
index fa8b9f0..fce27bd 100644
--- a/src/main/java/com/nis/domain/restful/CommonSourceFieldCfg.java
+++ b/src/main/java/com/nis/domain/restful/CommonSourceFieldCfg.java
@@ -19,6 +19,7 @@ public class CommonSourceFieldCfg {
private Boolean isRequired=false;
private String defaultVal;
private String regexp;
+ private Boolean isSrcInfo=false;
public CommonSourceFieldCfg() {
super();
@@ -36,7 +37,7 @@ public class CommonSourceFieldCfg {
*/
public CommonSourceFieldCfg(String fieldType, String srcName,
String dstName, String range, Boolean isRequired,
- String defaultVal, String regexp) {
+ String defaultVal, String regexp,Boolean isSrcInfo) {
super();
this.fieldType = fieldType;
this.srcName = srcName;
@@ -45,6 +46,7 @@ public class CommonSourceFieldCfg {
this.isRequired = isRequired;
this.defaultVal = defaultVal;
this.regexp = regexp;
+ this.isSrcInfo = isSrcInfo;
}
public String getSrcName() {
@@ -102,4 +104,17 @@ public class CommonSourceFieldCfg {
public void setRegexp(String regexp) {
this.regexp = regexp;
}
+ /**
+ * @return the isSrcInfo
+ */
+ public Boolean getIsSrcInfo() {
+ return isSrcInfo;
+ }
+
+ /**
+ * @param isSrcInfo the isSrcInfo to set
+ */
+ public void setIsSrcInfo(Boolean isSrcInfo) {
+ this.isSrcInfo = isSrcInfo;
+ }
}
diff --git a/src/main/java/com/nis/util/CompileVal.java b/src/main/java/com/nis/util/CompileVal.java
index 6204c5d..0af63d7 100644
--- a/src/main/java/com/nis/util/CompileVal.java
+++ b/src/main/java/com/nis/util/CompileVal.java
@@ -702,25 +702,91 @@ public class CompileVal {
}
public static String serviceIpClientRegionVal(IpRegion ipRegion, Long compileId) {
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
- + "的域配置srcIp的格式不正确或与addrType不一致";
- }
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
- + "的域配置maskSrcIp的格式不正确或与addrType不一致";
- }
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
- + "的域配置dstIp的格式不正确或与addrType不一致";
- }
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
- + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ //源IP信息和目的IP信息格式为IPV4或IPV6
+ if (ipRegion.getAddrType().intValue()==4||ipRegion.getAddrType().intValue()==6) {
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
+ }else if (ipRegion.getAddrType().intValue()==46) {//4OVER6:源IP信息格式为IPV4、目的IP信息格式IPV6
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
+ }else if (ipRegion.getAddrType().intValue()==64) {//6OVER4:源IP信息格式为IPV6、目的IP信息格式IPV4
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
+ }else if (ipRegion.getAddrType().intValue()==10) {//all:符合IP格式即可
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
}
if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) {
@@ -776,25 +842,91 @@ public class CompileVal {
}
public static String serviceIpRegionVal(IpRegion ipRegion, Long compileId) {
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
- + "的域配置srcIp的格式不正确或与addrType不一致";
- }
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
- + "的域配置maskSrcIp的格式不正确或与addrType不一致";
- }
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
- + "的域配置dstIp的格式不正确或与addrType不一致";
- }
- if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) {
- businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
- return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
- + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ //源IP信息和目的IP信息格式为IPV4或IPV6
+ if (ipRegion.getAddrType().intValue()==4||ipRegion.getAddrType().intValue()==6) {
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
+ }else if (ipRegion.getAddrType().intValue()==46) {//4OVER6:源IP信息格式为IPV4、目的IP信息格式IPV6
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
+ }else if (ipRegion.getAddrType().intValue()==64) {//6OVER4:源IP信息格式为IPV6、目的IP信息格式IPV4
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), 6)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), 4)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
+ }else if (ipRegion.getAddrType().intValue()==10) {//all:符合IP格式即可
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置srcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskSrcIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置dstIp的格式不正确或与addrType不一致";
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), null)) {
+ businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
+ return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ + "的域配置maskDstIp的格式不正确或与addrType不一致";
+ }
}
if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) {
diff --git a/src/main/java/com/nis/util/ReadCommSourceXmlUtil.java b/src/main/java/com/nis/util/ReadCommSourceXmlUtil.java
index acd5d1f..7a7ed82 100644
--- a/src/main/java/com/nis/util/ReadCommSourceXmlUtil.java
+++ b/src/main/java/com/nis/util/ReadCommSourceXmlUtil.java
@@ -91,6 +91,9 @@ public class ReadCommSourceXmlUtil {
if (!StringUtil.isEmpty(field.attribute("regexp"))) {
fieldCfg.setRegexp(field.attribute("regexp").getValue());
}
+ if (!StringUtil.isEmpty(field.attribute("isSrcInfo"))) {
+ fieldCfg.setIsSrcInfo(Boolean.valueOf(field.attribute("isSrcInfo").getValue()));
+ }
cfgList.add(fieldCfg);
}
commonSourceCfgMap.put(serviceId.trim(), cfgList);
diff --git a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java
index c8c7098..84b74bf 100644
--- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java
+++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java
@@ -2876,7 +2876,16 @@ public class ConfigSourcesService extends BaseService {
}
break;
case "IP":
- if (!BasicProvingUtil.isIpOrIpMask(dstStr, ipType)) {
+ Boolean isSrcInfo = commonSourceFieldCfg.getIsSrcInfo();
+ Integer valAddrType = ipType;
+ if (ipType.intValue()==46) {
+ valAddrType=isSrcInfo?4:6;
+ }else if (ipType.intValue()==64) {
+ valAddrType=isSrcInfo?6:4;
+ }else if (ipType.intValue()==10) {
+ valAddrType=null;
+ }
+ if (!BasicProvingUtil.isIpOrIpMask(dstStr, valAddrType)) {
logger.error(commonSourceFieldCfg.getSrcName()
+ "参数格式不正确或与" + ipTypeName + "不一致");
thread.setExceptionInfo(commonSourceFieldCfg
diff --git a/src/main/resources/commonSources/applicationConfig-parser.schema.xsd b/src/main/resources/commonSources/applicationConfig-parser.schema.xsd
index a0d0434..f8a376e 100644
--- a/src/main/resources/commonSources/applicationConfig-parser.schema.xsd
+++ b/src/main/resources/commonSources/applicationConfig-parser.schema.xsd
@@ -39,6 +39,8 @@
+
@@ -68,6 +70,12 @@
+
+
+
+
+
+
diff --git a/src/main/resources/commonSources/applicationConfig-parser.xml b/src/main/resources/commonSources/applicationConfig-parser.xml
index 6a97c60..4577c39 100644
--- a/src/main/resources/commonSources/applicationConfig-parser.xml
+++ b/src/main/resources/commonSources/applicationConfig-parser.xml
@@ -15,9 +15,9 @@
-
-
-
+
+
+
@@ -90,9 +90,9 @@
-
-
-
+
+
+
diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties
index 3577236..03c3127 100644
--- a/src/main/resources/jdbc.properties
+++ b/src/main/resources/jdbc.properties
@@ -64,7 +64,7 @@ bonecp.hive.statementsCacheSize=100
#####################################################################################################################################
redis.host=10.0.6.249
#redis.host=192.168.10.205
-redis.port=6381
+redis.port=6379
redis.pass=
redis.maxIdle=5
redis.maxTotal=250