diff --git a/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsage.java b/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsage.java
index e3360af33..9783c4077 100644
--- a/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsage.java
+++ b/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsage.java
@@ -164,7 +164,6 @@ public EvidenceKeyFilterShareUsage(
this.shareAllQueryStringParameters = shareAllQueryStringParameters;
// The Cookie header carries every cookie, including the ones the
// cookie rule leaves out.
- this.blockedHttpHeaders.add("cookies");
this.blockedHttpHeaders.add("cookie");
this.includeSession = includeSession;
this.sessionCookieName = sessionCookieName == null ?
diff --git a/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java b/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java
index 6e07f6dd3..1ab56e3f9 100644
--- a/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java
+++ b/pipeline/pipeline.engines.fiftyone/src/main/java/fiftyone/pipeline/engines/fiftyone/flowelements/ShareUsageBuilderBase.java
@@ -201,24 +201,22 @@ public boolean isShareAllEvidence() {
}
/**
- * By default, all HTTP headers (excluding a few such as 'cookies', if they
- * don't start with 51D_) are shared. Individual headers can be excluded from sharing by
- * adding them to this list.
+ * By default, every HTTP header is shared except Cookie. Individual
+ * headers can be excluded from sharing by adding them to this list.
*
* This setter replaces the current list
* @param blockedHeaders the (case-insensitive) names of the headers to block
* @return this builder
*/
- @DefaultValue("All HTTP Headers are shared except cookies that do not start with 51D_")
+ @DefaultValue("All HTTP headers are shared except Cookie")
public ShareUsageBuilderBase setBlockedHttpHeaders(List blockedHeaders) {
blockedHttpHeaders = blockedHeaders;
return this;
}
/**
- * By default, all HTTP headers (excluding a few such as 'cookies', if they
- * don't start with 51D_) are shared. Individual headers can be excluded from sharing by
- * adding them to this list.
+ * By default, every HTTP header is shared except Cookie. Individual
+ * headers can be excluded from sharing by adding them to this list.
*
* This setter adds to the blocked headers
* @param blockedHeaders a comma separated list of
@@ -226,22 +224,21 @@ public ShareUsageBuilderBase setBlockedHttpHeaders(List blockedHeader
* headers to include
* @return this builder
*/
- @DefaultValue("All HTTP Headers are shared except cookies that do not start with 51D_")
+ @DefaultValue("All HTTP headers are shared except Cookie")
public ShareUsageBuilderBase setBlockedHttpHeaders(String blockedHeaders) {
blockedHttpHeaders.addAll(Arrays.asList(blockedHeaders.split("\\s*,\\s*")));
return this;
}
/**
- * By default, all HTTP headers (excluding a few such as 'cookies', if they
- * don't start with 51D_) are shared. Individual headers can be excluded from sharing by
- * adding them to this list.
+ * By default, every HTTP header is shared except Cookie. Individual
+ * headers can be excluded from sharing by adding them to this list.
*
* This setter allows you to add the name of a header to block.
* @param blockedHeader the (case-insensitive) name of the header to block
* @return this builder
*/
- @DefaultValue("All HTTP Headers are shared except cookies that do not start with 51D_")
+ @DefaultValue("All HTTP headers are shared except Cookie")
public ShareUsageBuilderBase setBlockedHttpHeader(String blockedHeader) {
blockedHttpHeaders.add(blockedHeader.trim());
return this;
diff --git a/pipeline/pipeline.engines.fiftyone/src/test/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsageTests.java b/pipeline/pipeline.engines.fiftyone/src/test/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsageTests.java
index 33eacefc6..8aeb6e7f8 100644
--- a/pipeline/pipeline.engines.fiftyone/src/test/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsageTests.java
+++ b/pipeline/pipeline.engines.fiftyone/src/test/java/fiftyone/pipeline/engines/fiftyone/data/EvidenceKeyFilterShareUsageTests.java
@@ -187,6 +187,33 @@ public void cookieHeaderNeverShared() {
assertTrue(filter.include("server.request-method"));
}
+ /**
+ * By default every header but Cookie is shared, so a header named
+ * Cookies is shared like any other header.
+ */
+ @Test
+ public void onlyTheCookieHeaderIsBlockedByDefault() {
+ EvidenceKeyFilterShareUsage filter = defaults();
+ assertFalse(filter.include("header.cookie"));
+ assertFalse(filter.include("header.Cookie"));
+ assertTrue(filter.include("header.cookies"));
+ assertTrue(filter.include("header.Cookies"));
+ }
+
+ /**
+ * A header named Cookies is blocked when the blocked headers name it.
+ */
+ @Test
+ public void aCookiesHeaderIsBlockedWhenNamed() {
+ EvidenceKeyFilterShareUsage filter = filter(
+ Collections.singletonList("Cookies"),
+ Collections.emptyList(),
+ false);
+ assertFalse(filter.include("header.cookies"));
+ assertFalse(filter.include("header.Cookies"));
+ assertFalse(filter.include("header.cookie"));
+ }
+
/**
* A key that only ends with the same letters as a key never shared is
* treated as an ordinary key.