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

cshannon pushed a commit to branch activemq-6.2.x
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/activemq-6.2.x by this push:
     new 461987f1bc Minor bug fix for BrokerView#validateAllowedUri (#1900) 
(#1902)
461987f1bc is described below

commit 461987f1bce2733eeaad75ae3407e9f2213838d3
Author: Christopher L. Shannon <[email protected]>
AuthorDate: Sat Apr 11 09:31:32 2026 -0400

    Minor bug fix for BrokerView#validateAllowedUri (#1900) (#1902)
    
    The wrong variable is being referenced in the nested loop. This does not
    cause the validation to actually break due to other checks done during
    the recursive call, but is incorrect either way. With this fix the
    counter needed tweaking for limiting the number of nested components as
    well.
    
    Follow on to #1847
    
    (cherry picked from commit b787b0ed11cf1b7444b0a3904398fea5dc16179b)
---
 .../src/main/java/org/apache/activemq/broker/jmx/BrokerView.java | 7 ++++---
 .../src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java   | 9 +++++++--
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java 
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java
index 5638388389..619912c01a 100644
--- 
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java
+++ 
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java
@@ -610,7 +610,8 @@ public class BrokerView implements BrokerViewMBean {
     // Validate the URI does not contain VM transport
     private static void validateAllowedUri(URI uri, int depth) throws 
URISyntaxException {
         // Don't allow more than 5 nested URIs to prevent blowing the stack
-        if (depth > 5) {
+        // If we are greater than 4 then this is the 5th level of composite
+        if (depth > 4) {
             throw new IllegalArgumentException("URI can't contain more than 5 
nested composite URIs");
         }
 
@@ -625,10 +626,10 @@ public class BrokerView implements BrokerViewMBean {
                 // Each URI could be a nested composite URI so call 
validateAllowedUri()
                 // to validate it. This check if composite first so we don't 
add to
                 // the recursive stack depth if there's a lot of URIs that are 
not composite
-                if (URISupport.isCompositeURI(uri)) {
+                if (URISupport.isCompositeURI(component)) {
                     validateAllowedUri(component, depth);
                 } else {
-                    validateAllowedScheme(uri.getScheme());
+                    validateAllowedScheme(component.getScheme());
                 }
             }
         }
diff --git 
a/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java
 
b/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java
index 141e5c0ee8..1b3548432b 100644
--- 
a/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java
+++ 
b/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java
@@ -116,11 +116,16 @@ public class JmxCreateNCTest {
 
     @Test
     public void testAddNetworkConnectorMaxComposite() throws Exception {
+        // Should allow 5 nested (excludes first wrapper) so no exception 
thrown
+        assertNotNull(proxy.addNetworkConnector(
+                
"static:(static:(static:(static:(static:(bad://localhost)))))"));
+
         try {
-            // verify nested composite URI with more than 5 levels is blocked
+            // verify nested composite URI with more than 5 levels is blocked. 
This has 6 nested
+            // (not including first wrapper url
             proxy.addNetworkConnector(
                     
"static:(failover:(failover:(failover:(failover:(failover:(tcp://localhost:0))))))");
-            fail("Should have failed trying to add vm connector bridge");
+            fail("Should have failed trying to add more than 5 connector 
bridges");
         } catch (IllegalArgumentException e) {
             assertEquals("URI can't contain more than 5 nested composite 
URIs", e.getMessage());
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact


Reply via email to