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..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,11 +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("extendAttribute", extendAttribute) + .add("extendAttributePresent", extendAttributeSnapshot != null) + .add("extendAttributeLength", extendAttributeSnapshot == null ? 0 : extendAttributeSnapshot.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())); + } +}