This is an automated email from the ASF dual-hosted git repository.

Duansg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/master by this push:
     new 5022ec4dcc [fix] correct inverted RegistryProtocol param validation 
(#4366)
5022ec4dcc is described below

commit 5022ec4dcc4df5ddd0fdd431392d1543c5896d8f
Author: Duansg <[email protected]>
AuthorDate: Tue Sep 8 19:18:54 2026 +0800

    [fix] correct inverted RegistryProtocol param validation (#4366)
---
 .../entity/job/protocol/RegistryProtocol.java      |   4 +-
 .../entity/job/protocol/RegistryProtocolTest.java  | 187 +++++++++++++++++----
 2 files changed, 157 insertions(+), 34 deletions(-)

diff --git 
a/hertzbeat-common-core/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocol.java
 
b/hertzbeat-common-core/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocol.java
index aaa63161e3..6041738392 100644
--- 
a/hertzbeat-common-core/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocol.java
+++ 
b/hertzbeat-common-core/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocol.java
@@ -49,7 +49,7 @@ public class RegistryProtocol implements 
CommonRequestProtocol, Protocol {
     @Override
     public boolean isInvalid() {
 
-        return validateIpDomain(host) && validPort(port)
-            && StringUtils.isAnyBlank(host, String.valueOf(port), 
discoveryClientTypeName);
+        return !validateIpDomain(host) || !validPort(port)
+            || StringUtils.isBlank(discoveryClientTypeName);
     }
 }
diff --git 
a/hertzbeat-common-core/src/test/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocolTest.java
 
b/hertzbeat-common-core/src/test/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocolTest.java
index f11e2ba911..9506a5cf0f 100644
--- 
a/hertzbeat-common-core/src/test/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocolTest.java
+++ 
b/hertzbeat-common-core/src/test/java/org/apache/hertzbeat/common/entity/job/protocol/RegistryProtocolTest.java
@@ -1,23 +1,20 @@
 /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
- *   http://www.apache.org/licenses/LICENSE-2.0
+ *     http://www.apache.org/licenses/LICENSE-2.0
  *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
-
 package org.apache.hertzbeat.common.entity.job.protocol;
 
 import org.junit.jupiter.api.Test;
@@ -28,26 +25,152 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 class RegistryProtocolTest {
 
     @Test
-    void isInvalid() {
+    void isInvalidValidProtocol() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port("8848")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertFalse(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidValidProtocolWithDomain() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("nacos.example.com")
+                .port("8848")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertFalse(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidValidProtocolWithLocalhost() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("localhost")
+                .port("8848")
+                .discoveryClientTypeName("Consul")
+                .build();
+        assertFalse(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidValidProtocolWithIpv6() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("::1")
+                .port("8848")
+                .discoveryClientTypeName("Consul")
+                .build();
+        assertFalse(protocol.isInvalid());
+    }
 
-        RegistryProtocol protocol1 = new RegistryProtocol();
-        protocol1.setPort("8080");
-        protocol1.setHost("127.0.0.1");
-        assertTrue(protocol1.isInvalid());
+    @Test
+    void isInvalidNullHost() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host(null)
+                .port("8848")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidBlankHost() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("  ")
+                .port("8848")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
 
-        RegistryProtocol protocol2 = new RegistryProtocol();
-        protocol2.setPort("8080");
-        protocol2.setHost("www.baidu.com");
-        assertTrue(protocol2.isInvalid());
+    @Test
+    void isInvalidMalformedHost() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("???")
+                .port("8848")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
 
-        RegistryProtocol protocol3 = new RegistryProtocol();
-        protocol3.setPort("8080");
-        protocol3.setHost("www.baidu.com.");
-        assertFalse(protocol3.isInvalid());
+    @Test
+    void isInvalidHostWithTrailingDot() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("www.baidu.com.")
+                .port("8080")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
 
-        RegistryProtocol protocol4 = new RegistryProtocol();
-        protocol3.setPort("80800");
-        protocol3.setHost("10.45.56.344");
-        assertFalse(protocol4.isInvalid());
+    @Test
+    void isInvalidNullPort() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port(null)
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidBlankPort() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port("")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidOutOfRangePort() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port("99999")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidNonNumericPort() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port("abc")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidOutOfRangePortWithDomainLikeHost() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("10.45.56.344")
+                .port("80800")
+                .discoveryClientTypeName("Nacos")
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidNullDiscoveryClientTypeName() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port("8848")
+                .discoveryClientTypeName(null)
+                .build();
+        assertTrue(protocol.isInvalid());
+    }
+
+    @Test
+    void isInvalidBlankDiscoveryClientTypeName() {
+        RegistryProtocol protocol = RegistryProtocol.builder()
+                .host("192.168.1.1")
+                .port("8848")
+                .discoveryClientTypeName("  ")
+                .build();
+        assertTrue(protocol.isInvalid());
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to