1、为IP域配置和回调类配置添加addrType为4OVER、6OVER4三种IP类型;

2、redis.port改回6379;
This commit is contained in:
zhangdongxu
2018-07-20 17:56:31 +08:00
parent 75f136b567
commit 827338f7aa
7 changed files with 214 additions and 47 deletions

View File

@@ -19,6 +19,7 @@ public class CommonSourceFieldCfg {
private Boolean isRequired=false; private Boolean isRequired=false;
private String defaultVal; private String defaultVal;
private String regexp; private String regexp;
private Boolean isSrcInfo=false;
public CommonSourceFieldCfg() { public CommonSourceFieldCfg() {
super(); super();
@@ -36,7 +37,7 @@ public class CommonSourceFieldCfg {
*/ */
public CommonSourceFieldCfg(String fieldType, String srcName, public CommonSourceFieldCfg(String fieldType, String srcName,
String dstName, String range, Boolean isRequired, String dstName, String range, Boolean isRequired,
String defaultVal, String regexp) { String defaultVal, String regexp,Boolean isSrcInfo) {
super(); super();
this.fieldType = fieldType; this.fieldType = fieldType;
this.srcName = srcName; this.srcName = srcName;
@@ -45,6 +46,7 @@ public class CommonSourceFieldCfg {
this.isRequired = isRequired; this.isRequired = isRequired;
this.defaultVal = defaultVal; this.defaultVal = defaultVal;
this.regexp = regexp; this.regexp = regexp;
this.isSrcInfo = isSrcInfo;
} }
public String getSrcName() { public String getSrcName() {
@@ -102,4 +104,17 @@ public class CommonSourceFieldCfg {
public void setRegexp(String regexp) { public void setRegexp(String regexp) {
this.regexp = 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;
}
} }

View File

@@ -702,26 +702,92 @@ public class CompileVal {
} }
public static String serviceIpClientRegionVal(IpRegion ipRegion, Long compileId) { public static String serviceIpClientRegionVal(IpRegion ipRegion, Long compileId) {
//源IP信息和目的IP信息格式为IPV4或IPV6
if (ipRegion.getAddrType().intValue()==4||ipRegion.getAddrType().intValue()==6) {
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue(); businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId() return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp的格式不正确或与addrType不一致"; + "的域配置srcIp的格式不正确或与addrType不一致";
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue(); businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId() return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcIp的格式不正确或与addrType不一致"; + "的域配置maskSrcIp的格式不正确或与addrType不一致";
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue(); businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId() return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置dstIp的格式不正确或与addrType不一致"; + "的域配置dstIp的格式不正确或与addrType不一致";
} }
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue(); businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId() return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstIp的格式不正确或与addrType不一致"; + "的域配置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())) { if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) {
businessCode = RestBusinessCode.PortIsNotVal.getValue(); businessCode = RestBusinessCode.PortIsNotVal.getValue();
@@ -776,6 +842,8 @@ public class CompileVal {
} }
public static String serviceIpRegionVal(IpRegion ipRegion, Long compileId) { public static String serviceIpRegionVal(IpRegion ipRegion, Long compileId) {
//源IP信息和目的IP信息格式为IPV4或IPV6
if (ipRegion.getAddrType().intValue()==4||ipRegion.getAddrType().intValue()==6) {
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) { if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getSrcIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue(); businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId() return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
@@ -796,6 +864,70 @@ public class CompileVal {
return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId() return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置maskDstIp的格式不正确或与addrType不一致"; + "的域配置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())) { if (!BasicProvingUtil.isPortOrPortMask(ipRegion.getSrcPort())) {
businessCode = RestBusinessCode.PortIsNotVal.getValue(); businessCode = RestBusinessCode.PortIsNotVal.getValue();

View File

@@ -91,6 +91,9 @@ public class ReadCommSourceXmlUtil {
if (!StringUtil.isEmpty(field.attribute("regexp"))) { if (!StringUtil.isEmpty(field.attribute("regexp"))) {
fieldCfg.setRegexp(field.attribute("regexp").getValue()); fieldCfg.setRegexp(field.attribute("regexp").getValue());
} }
if (!StringUtil.isEmpty(field.attribute("isSrcInfo"))) {
fieldCfg.setIsSrcInfo(Boolean.valueOf(field.attribute("isSrcInfo").getValue()));
}
cfgList.add(fieldCfg); cfgList.add(fieldCfg);
} }
commonSourceCfgMap.put(serviceId.trim(), cfgList); commonSourceCfgMap.put(serviceId.trim(), cfgList);

View File

@@ -2876,7 +2876,16 @@ public class ConfigSourcesService extends BaseService {
} }
break; break;
case "IP": 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() logger.error(commonSourceFieldCfg.getSrcName()
+ "参数格式不正确或与" + ipTypeName + "不一致"); + "参数格式不正确或与" + ipTypeName + "不一致");
thread.setExceptionInfo(commonSourceFieldCfg thread.setExceptionInfo(commonSourceFieldCfg

View File

@@ -39,6 +39,8 @@
<xs:enumeration value="Date"></xs:enumeration> <xs:enumeration value="Date"></xs:enumeration>
<xs:enumeration value="Number"></xs:enumeration> <xs:enumeration value="Number"></xs:enumeration>
<xs:enumeration value="IP"> <xs:enumeration value="IP">
<![CDATA[IP类型数据如果格式可能为4OVER6或6OVER4,需要添加isSrcInfo="true"
]]>
</xs:enumeration> </xs:enumeration>
<xs:enumeration value="Port"></xs:enumeration> <xs:enumeration value="Port"></xs:enumeration>
</xs:restriction> </xs:restriction>
@@ -68,6 +70,12 @@
</xs:documentation> </xs:documentation>
</xs:annotation> </xs:annotation>
</xs:attribute> </xs:attribute>
<xs:attribute name="isSrcInfo" type="xs:boolean">
<xs:annotation>
<xs:documentation><![CDATA[IP类型数据如果格式可能为4OVER6或6OVER4,通过isSrcInfo="true"指定源IP信息]]>
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
</xs:sequence> </xs:sequence>

View File

@@ -15,9 +15,9 @@
<t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/> <t:field fieldType="String" srcName="service" dstName="service" isRequired="true"/>
<t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/>
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" /> <t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="[4|6]"/> <t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="^([4|6]{1})|46|64|10$"/>
<t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true"/> <t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true" isSrcInfo="true"/>
<t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true"/> <t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true" isSrcInfo="true"/>
<t:field fieldType="Port" srcName="srcPort" dstName="src_port" isRequired="true" range="0-65535"/> <t:field fieldType="Port" srcName="srcPort" dstName="src_port" isRequired="true" range="0-65535"/>
<t:field fieldType="Port" srcName="maskSrcPort" dstName="mask_src_port" isRequired="true" range="0-65535"/> <t:field fieldType="Port" srcName="maskSrcPort" dstName="mask_src_port" isRequired="true" range="0-65535"/>
<t:field fieldType="IP" srcName="dstIp" dstName="dst_ip" isRequired="true"/> <t:field fieldType="IP" srcName="dstIp" dstName="dst_ip" isRequired="true"/>
@@ -90,9 +90,9 @@
<t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/> <t:field fieldType="Number" srcName="action" dstName="action" isRequired="true"/>
<t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" /> <t:field fieldType="Number" srcName="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="policyGroup" dstName="policy_group" isRequired="true" defaultVal="0"/> <t:field fieldType="Number" srcName="policyGroup" dstName="policy_group" isRequired="true" defaultVal="0"/>
<t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="[4|6]"/> <t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="^([4|6]{1})|46|64|10$"/>
<t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true"/> <t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true" isSrcInfo="true"/>
<t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true"/> <t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true" isSrcInfo="true"/>
<t:field fieldType="Port" srcName="srcPort" dstName="src_port" isRequired="true" range="0-65535"/> <t:field fieldType="Port" srcName="srcPort" dstName="src_port" isRequired="true" range="0-65535"/>
<t:field fieldType="Port" srcName="maskSrcPort" dstName="mask_src_port" isRequired="true" range="0-65535"/> <t:field fieldType="Port" srcName="maskSrcPort" dstName="mask_src_port" isRequired="true" range="0-65535"/>
<t:field fieldType="IP" srcName="dstIp" dstName="dst_ip" isRequired="true"/> <t:field fieldType="IP" srcName="dstIp" dstName="dst_ip" isRequired="true"/>

View File

@@ -64,7 +64,7 @@ bonecp.hive.statementsCacheSize=100
##################################################################################################################################### #####################################################################################################################################
redis.host=10.0.6.249 redis.host=10.0.6.249
#redis.host=192.168.10.205 #redis.host=192.168.10.205
redis.port=6381 redis.port=6379
redis.pass= redis.pass=
redis.maxIdle=5 redis.maxIdle=5
redis.maxTotal=250 redis.maxTotal=250