You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ra...@apache.org on 2020/07/17 05:02:01 UTC

[olingo-odata4] branch master updated: [OLINGO-1378] does not allow some special characters in search term

This is an automated email from the ASF dual-hosted git repository.

ramyav pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata4.git


The following commit(s) were added to refs/heads/master by this push:
     new 7e1aa94  [OLINGO-1378] does not allow some special characters in search term
7e1aa94 is described below

commit 7e1aa94d4e05540e2c183e912afbedb3501dc083
Author: ramya vasanth <ra...@sap.com>
AuthorDate: Fri Jul 17 10:31:50 2020 +0530

    [OLINGO-1378] does not allow some special characters in search term
---
 .../server/core/uri/parser/search/SearchTokenizer.java | 18 +++++++++++++++---
 .../core/uri/parser/search/SearchTokenizerTest.java    |  4 +++-
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
index f89eca0..2afcfd0 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizer.java
@@ -123,8 +123,8 @@ public class SearchTokenizer {
           || isUnreserved(character)
           || isOtherDelimsForWord(character);
     }
-    
-    /**
+
+	/**
      * <code>
      * <b>searchPhrase</b> = quotation-mark 1*qchar-no-AMP-DQUOTE quotation-mark
      * <br/><br/>
@@ -218,7 +218,19 @@ public class SearchTokenizer {
           || character == '$'
           || character == '='
           || character == '%'
-          || character == '\'';
+          || character == '\''
+          || character == '&'
+          || character == '{'
+          || character == '}'
+          || character == '['
+          || character == ']'
+          || character == ','
+          || character == '#'
+          || character == '^'
+          || character == '|'
+          || character == '>'
+          || character == '<'
+          || character == '`';
     }
     
     /**
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
index 47ac334..d8c6a7c 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/uri/parser/search/SearchTokenizerTest.java
@@ -45,7 +45,9 @@ public class SearchTokenizerTest {
 
   @Test
   public void parseWords() throws Exception {
-    assertQuery("C++%20=$@:,*!/?'%27").resultsIn(WORD);
+    assertQuery("C++%20=$@:,*!/?'%27}#^.|").resultsIn(WORD);
+    assertQuery("[]|{`").resultsIn(WORD);
+    assertQuery(">").resultsIn(WORD);
     assertQuery("somesimpleword").resultsIn(WORD);
     assertQuery("anotherWord\u1234").resultsIn(WORD);
     // special