From 11b8fd499ae700b6785763cd68be511f69c05a52 Mon Sep 17 00:00:00 2001 From: liuhy Date: Sun, 2 Aug 2026 22:17:08 -0700 Subject: [PATCH 1/2] [ISSUE #10762] Avoid exposing RemoteChannel extend attribute --- .../processor/channel/RemoteChannel.java | 3 ++- .../processor/channel/RemoteChannelTest.java | 22 ++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java index fb9666afcc3..0541a2ae9cf 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java @@ -110,7 +110,8 @@ public String toString() { .add("channelId", id()) .add("type", type) .add("remoteProxyIp", remoteProxyIp) - .add("extendAttribute", extendAttribute) + .add("extendAttributePresent", extendAttribute != null) + .add("extendAttributeLength", extendAttribute == null ? 0 : extendAttribute.length()) .toString(); } } diff --git a/proxy/src/test/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannelTest.java b/proxy/src/test/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannelTest.java index d504fdc5f99..cc19c46a714 100644 --- a/proxy/src/test/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannelTest.java +++ b/proxy/src/test/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannelTest.java @@ -21,8 +21,10 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; public class RemoteChannelTest { @@ -47,4 +49,22 @@ public void testEncodeAndDecode() { assertNull(RemoteChannel.decode("")); } -} \ No newline at end of file + + @Test + public void testToStringDoesNotExposeExtendAttribute() { + String extendAttribute = "sensitive-client-settings"; + RemoteChannel remoteChannel = new RemoteChannel( + "11.193.0.1", + "10.152.39.53:9768", + "11.193.0.1:1210", + ChannelProtocolType.GRPC_V2, + extendAttribute + ); + + String output = remoteChannel.toString(); + + assertFalse(output.contains(extendAttribute)); + assertTrue(output.contains("extendAttributePresent=true")); + assertTrue(output.contains("extendAttributeLength=" + extendAttribute.length())); + } +} From 09883c26d4ca2a6d56ce2bb6ff334649f6d43db4 Mon Sep 17 00:00:00 2001 From: liuhy Date: Tue, 4 Aug 2026 04:01:57 -0700 Subject: [PATCH 2/2] fix(proxy): snapshot remote channel metadata in logs --- .../rocketmq/proxy/processor/channel/RemoteChannel.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java index 0541a2ae9cf..21e0f7b2230 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/processor/channel/RemoteChannel.java @@ -106,12 +106,13 @@ public String getChannelExtendAttribute() { @Override public String toString() { + String extendAttributeSnapshot = this.extendAttribute; return MoreObjects.toStringHelper(this) .add("channelId", id()) .add("type", type) .add("remoteProxyIp", remoteProxyIp) - .add("extendAttributePresent", extendAttribute != null) - .add("extendAttributeLength", extendAttribute == null ? 0 : extendAttribute.length()) + .add("extendAttributePresent", extendAttributeSnapshot != null) + .add("extendAttributeLength", extendAttributeSnapshot == null ? 0 : extendAttributeSnapshot.length()) .toString(); } }