From 20cdd9d6ddeca8bd484d56d26954c625da4d44c2 Mon Sep 17 00:00:00 2001 From: su Date: Sun, 23 Mar 2025 21:29:05 +0900 Subject: [PATCH] Add toString() to IpAddressMatcher.java Closes gh-16795 Signed-off-by: wtigerhyunsu --- .../web/util/matcher/IpAddressMatcher.java | 7 +++++++ .../util/matcher/IpAddressMatcherTests.java | 19 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java b/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java index a235b59dd99..eac48297d2a 100644 --- a/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java +++ b/web/src/main/java/org/springframework/security/web/util/matcher/IpAddressMatcher.java @@ -130,4 +130,11 @@ private InetAddress parseAddress(String address) { } } + @Override + public String toString() { + String hostAddress = this.requiredAddress.getHostAddress(); + return (this.nMaskBits < 0) + ? "IpAddressMatcher[" + hostAddress + "]" + : "IpAddressMatcher[" + hostAddress + "/" + this.nMaskBits + "]"; + } } diff --git a/web/src/test/java/org/springframework/security/web/util/matcher/IpAddressMatcherTests.java b/web/src/test/java/org/springframework/security/web/util/matcher/IpAddressMatcherTests.java index ce702bfbebb..d56f8b1a5df 100644 --- a/web/src/test/java/org/springframework/security/web/util/matcher/IpAddressMatcherTests.java +++ b/web/src/test/java/org/springframework/security/web/util/matcher/IpAddressMatcherTests.java @@ -152,5 +152,24 @@ public void constructorWhenRequiredAddressIsEmptyThenThrowsIllegalArgumentExcept assertThatIllegalArgumentException().isThrownBy(() -> new IpAddressMatcher("")) .withMessage("ipAddress cannot be empty"); } + // gh-16795 + @Test + public void toStringWhenCidrIsProvidedThenReturnsIpAddressWithCidr() { + IpAddressMatcher matcher = new IpAddressMatcher("192.168.1.0/24"); + + String result = matcher.toString(); + + assertThat(result).isEqualTo("IpAddressMatcher[192.168.1.0/24]"); + } + + // gh-16795 + @Test + public void toStringWhenOnlyIpIsProvidedThenReturnsIpAddressOnly() { + IpAddressMatcher matcher = new IpAddressMatcher("127.0.0.1"); + + String result = matcher.toString(); + + assertThat(result).isEqualTo("IpAddressMatcher[127.0.0.1]"); + } }