diff --git a/common/src/main/java/org/apache/rocketmq/common/utils/IPAddressUtils.java b/common/src/main/java/org/apache/rocketmq/common/utils/IPAddressUtils.java index 5133219d9cd..925c8de9f4c 100644 --- a/common/src/main/java/org/apache/rocketmq/common/utils/IPAddressUtils.java +++ b/common/src/main/java/org/apache/rocketmq/common/utils/IPAddressUtils.java @@ -83,6 +83,11 @@ public static boolean isValidIPv6Cidr(String cidr) { public static boolean isIPInRange(String ip, String cidr) { try { + if (StringUtils.equals(cidr, "*") || StringUtils.equals(cidr, "0.0.0.0") + || StringUtils.equals(cidr, "0.0.0.0/0") || StringUtils.equals(cidr, "::") + || StringUtils.equals(cidr, "::/0")) { + return true; + } String[] parts = cidr.split(SLASH); if (parts.length == 1) { return StringUtils.equals(ip, cidr); diff --git a/common/src/test/java/org/apache/rocketmq/common/utils/IPAddressUtilsTest.java b/common/src/test/java/org/apache/rocketmq/common/utils/IPAddressUtilsTest.java index 7830bc3aed6..071cf6e2015 100644 --- a/common/src/test/java/org/apache/rocketmq/common/utils/IPAddressUtilsTest.java +++ b/common/src/test/java/org/apache/rocketmq/common/utils/IPAddressUtilsTest.java @@ -39,6 +39,17 @@ public void isIPInRange() { assert IPAddressUtils.isIPInRange(ipv6Address, ipv6Cidr); } + @Test + public void isIPInRangeWildcard() { + assert IPAddressUtils.isIPInRange("192.168.1.10", "0.0.0.0"); + assert IPAddressUtils.isIPInRange("10.0.0.1", "0.0.0.0/0"); + assert IPAddressUtils.isIPInRange("192.168.1.10", "*"); + assert IPAddressUtils.isIPInRange("2001:0db8:85a3::8a2e:0370:7334", "::"); + assert IPAddressUtils.isIPInRange("2001:0db8:85a3::8a2e:0370:7334", "::/0"); + assert IPAddressUtils.isIPInRange("192.168.1.10", "::/0"); + assert IPAddressUtils.isIPInRange("2001:0db8::1", "0.0.0.0/0"); + } + @Test public void isValidCidr() { String ipv4Cidr = "192.168.1.0/24";