Repository: james-project
Updated Branches:
  refs/heads/master 5f8f0d59b -> 1b49712c5


JAMES-2236 Ignore headers with dots for ElasticSearch


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/ec5bfaa1
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/ec5bfaa1
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/ec5bfaa1

Branch: refs/heads/master
Commit: ec5bfaa1779943c486b31d8da2c9d96be4ddb97d
Parents: ab677d0
Author: Raphael Ouazana <raphael.ouaz...@linagora.com>
Authored: Thu Nov 23 17:11:35 2017 +0100
Committer: Raphael Ouazana <raphael.ouaz...@linagora.com>
Committed: Thu Nov 23 17:44:41 2017 +0100

----------------------------------------------------------------------
 .../elasticsearch/json/HeaderCollection.java       |  4 +++-
 .../elasticsearch/json/HeaderCollectionTest.java   | 10 ++++++++++
 .../search/AbstractMessageSearchIndexTest.java     | 17 +++++++++++++++++
 .../store/src/test/resources/eml/headerWithDot.eml |  7 +++++++
 4 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/ec5bfaa1/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
----------------------------------------------------------------------
diff --git 
a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
 
b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
index 85782ad..c4c5a5a 100644
--- 
a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
+++ 
b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollection.java
@@ -71,7 +71,9 @@ public class HeaderCollection {
             String headerName = field.getName().toLowerCase(Locale.US);
             String sanitizedValue = 
MimeUtil.unscrambleHeaderValue(field.getBody());
 
-            headers.put(headerName, sanitizedValue);
+            if (!headerName.contains(".")) {
+                headers.put(headerName, sanitizedValue);
+            }
             handleSpecificHeader(headerName, sanitizedValue);
             return this;
         }

http://git-wip-us.apache.org/repos/asf/james-project/blob/ec5bfaa1/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
 
b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
index 93a7b02..52b4002 100644
--- 
a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
+++ 
b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/HeaderCollectionTest.java
@@ -96,6 +96,16 @@ public class HeaderCollectionTest {
     }
 
     @Test
+    public void getHeadersShouldIgnoreHeadersWithDots() {
+        HeaderCollection headerCollection = HeaderCollection.builder()
+            .add(new FieldImpl("a.b.c", "value"))
+            .build();
+
+        assertThat(headerCollection.getHeaders().get("a.b.c"))
+            .isEmpty();
+    }
+
+    @Test
     public void addressWithTwoDisplayNamesOnTheSameFieldShouldBeRetrieved() {
         HeaderCollection headerCollection = HeaderCollection.builder()
             .add(new FieldImpl("From", "Christophe Hamerling 
<chri.hamerl...@linagora.com>, Graham CROSMARIE <grah.crosma...@linagora.com>"))

http://git-wip-us.apache.org/repos/asf/james-project/blob/ec5bfaa1/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 7b4676e..ad89eac 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -405,6 +405,23 @@ public abstract class AbstractMessageSearchIndexTest {
     }
 
     @Test
+    public void messageWithDotsInHeaderShouldBeIndexed() throws 
MailboxException {
+
+        ComposedMessageId mailWithDotsInHeader = 
myFolderMessageManager.appendMessage(
+                ClassLoader.getSystemResourceAsStream("eml/headerWithDot.eml"),
+                new Date(1409608900000L),
+                session,
+                RECENT,
+                new Flags());
+        await();
+        
+        SearchQuery searchQuery = new SearchQuery(SearchQuery.all());
+
+        assertThat(messageSearchIndex.search(session, mailbox2, searchQuery))
+            .contains(mailWithDotsInHeader.getUid());
+    }
+
+    @Test
     public void 
hasNoAttachmenShouldOnlyReturnMessageThatHasNoAttachmentWhichAreNotInline() 
throws MailboxException {
         SearchQuery searchQuery = new 
SearchQuery(SearchQuery.hasNoAttachment());
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/ec5bfaa1/mailbox/store/src/test/resources/eml/headerWithDot.eml
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/resources/eml/headerWithDot.eml 
b/mailbox/store/src/test/resources/eml/headerWithDot.eml
new file mode 100644
index 0000000..b9a41d9
--- /dev/null
+++ b/mailbox/store/src/test/resources/eml/headerWithDot.eml
@@ -0,0 +1,7 @@
+From: m...@example.com
+To: y...@example.com
+X-normal-header: normal header
+X-header.with.dots: header with dots
+Subject: Test me
+
+Please!


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to