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 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;
}
}

View File

@@ -702,26 +702,92 @@ public class CompileVal {
}
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())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置srcIp的格式不正确或与addrType不一致";
}
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskSrcIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置maskSrcIp的格式不正确或与addrType不一致";
}
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getDstIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
+ "的域配置dstIp的格式不正确或与addrType不一致";
}
if (!BasicProvingUtil.isIpOrIpMask(ipRegion.getMaskDstIp(), ipRegion.getAddrType())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipClientRangeList中regionId为" + ipRegion.getRegionId()
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())) {
businessCode = RestBusinessCode.PortIsNotVal.getValue();
@@ -776,6 +842,8 @@ public class CompileVal {
}
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())) {
businessCode = RestBusinessCode.IPUnMatchAddrType.getValue();
return "编译配置id为" + compileId + "的配置中ipRegionList中regionId为" + ipRegion.getRegionId()
@@ -796,6 +864,70 @@ public class CompileVal {
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())) {
businessCode = RestBusinessCode.PortIsNotVal.getValue();

View File

@@ -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);

View File

@@ -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

View File

@@ -39,6 +39,8 @@
<xs:enumeration value="Date"></xs:enumeration>
<xs:enumeration value="Number"></xs:enumeration>
<xs:enumeration value="IP">
<![CDATA[IP类型数据如果格式可能为4OVER6或6OVER4,需要添加isSrcInfo="true"
]]>
</xs:enumeration>
<xs:enumeration value="Port"></xs:enumeration>
</xs:restriction>
@@ -68,6 +70,12 @@
</xs:documentation>
</xs:annotation>
</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:element>
</xs:sequence>

View File

@@ -15,9 +15,9 @@
<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="cfgId" dstName="cfg_id" isRequired="true" />
<t:field fieldType="Number" srcName="addrType" dstName="addr_type" isRequired="true" regexp="[4|6]"/>
<t:field fieldType="IP" srcName="srcIp" dstName="src_ip" isRequired="true"/>
<t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true"/>
<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" isSrcInfo="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="maskSrcPort" dstName="mask_src_port" isRequired="true" range="0-65535"/>
<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="cfgId" dstName="cfg_id" isRequired="true" />
<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="IP" srcName="srcIp" dstName="src_ip" isRequired="true"/>
<t:field fieldType="IP" srcName="maskSrcIp" dstName="mask_src_ip" isRequired="true"/>
<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" isSrcInfo="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="maskSrcPort" dstName="mask_src_port" isRequired="true" range="0-65535"/>
<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=192.168.10.205
redis.port=6381
redis.port=6379
redis.pass=
redis.maxIdle=5
redis.maxTotal=250