From ba42d63e7a5fd64936d7b685f0054d23e8a73010 Mon Sep 17 00:00:00 2001 From: ali dandach Date: Fri, 15 Mar 2024 09:42:32 +0200 Subject: [PATCH] enh: refactor value comparison in Netty5HeadersAdapter The method `containsValue` in `Netty5HeadersAdapter` has been refactored. It now converts the input value and the entry value into the string prior to comparison. This approach optimizes accuracy, preventing false positives when a CharSequence object is passed in that isn't a string. --- .../http/support/Netty5HeadersAdapter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/support/Netty5HeadersAdapter.java b/spring-web/src/main/java/org/springframework/http/support/Netty5HeadersAdapter.java index 26d7b7fd7c49..b022cd1dcd04 100644 --- a/spring-web/src/main/java/org/springframework/http/support/Netty5HeadersAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/support/Netty5HeadersAdapter.java @@ -115,9 +115,12 @@ public boolean containsKey(Object key) { @Override public boolean containsValue(Object value) { - return (value instanceof String && - StreamSupport.stream(this.headers.spliterator(), false) - .anyMatch(entry -> value.equals(entry.getValue()))); + if (value instanceof CharSequence) { + String valueStr = value.toString(); + return StreamSupport.stream(this.headers.spliterator(), false) + .anyMatch(entry -> valueStr.equals(entry.getValue().toString())); + } + return false; } @Override