containsHeaderString makes sense in all four filter context types
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientRequestContext.java b/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientRequestContext.java
index f252801..357c35b 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientRequestContext.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientRequestContext.java
@@ -193,6 +193,23 @@
public String getHeaderString(String name);
/**
+ * Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+ *
+ * Each single header value is converted to String using a {@link jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate} if one
+ * is available via {@link jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class)} for the header value
+ * class or using its {@code toString} method if a header delegate is not available.
+ *
+ * @param name the message header.
+ * @param value the message header value.
+ * @param ignoreCase whether to ignore upper/lower case.
+ * @return {@code true} if and only if a header with the provided name exists having either the exact value or whose
+ * comma-separated header string contains value as a whole word.
+ * @see #getHeaders()
+ * @see #getHeaderString(String)
+ */
+ public boolean containsHeaderString(String name, String value, boolean ignoreCase);
+
+ /**
* Get message date.
*
* @return the message date, otherwise {@code null} if not present.
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientResponseContext.java b/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientResponseContext.java
index 87feabd..93a04a7 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientResponseContext.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/client/ClientResponseContext.java
@@ -89,6 +89,19 @@
public String getHeaderString(String name);
/**
+ * Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+ *
+ * @param name the message header.
+ * @param value the message header value.
+ * @param ignoreCase whether to ignore upper/lower case.
+ * @return {@code true} if and only if a header with the provided name exists having either the exact value or whose
+ * comma-separated header string contains value as a whole word.
+ * @see #getHeaders()
+ * @see #getHeaderString(String)
+ */
+ public boolean containsHeaderString(String name, String value, boolean ignoreCase);
+
+ /**
* Get the allowed HTTP methods from the Allow HTTP header.
*
* @return the allowed HTTP methods, all methods will returned as upper case strings.
diff --git a/jaxrs-api/src/main/java/jakarta/ws/rs/container/ContainerRequestContext.java b/jaxrs-api/src/main/java/jakarta/ws/rs/container/ContainerRequestContext.java
index b7e593e..42ee509 100644
--- a/jaxrs-api/src/main/java/jakarta/ws/rs/container/ContainerRequestContext.java
+++ b/jaxrs-api/src/main/java/jakarta/ws/rs/container/ContainerRequestContext.java
@@ -229,6 +229,19 @@
public String getHeaderString(String name);
/**
+ * Checks whether a header with a specific name and value (or item of the comma-separated value list) exists.
+ *
+ * @param name the message header.
+ * @param value the message header value.
+ * @param ignoreCase whether to ignore upper/lower case.
+ * @return {@code true} if and only if a header with the provided name exists having either the exact value or whose
+ * comma-separated header string contains value as a whole word.
+ * @see #getHeaders()
+ * @see #getHeaderString(String)
+ */
+ public boolean containsHeaderString(String name, String value, boolean ignoreCase);
+
+ /**
* Get message date.
*
* @return the message date, otherwise {@code null} if not present.