You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by tm...@apache.org on 2017/09/19 14:06:25 UTC

svn commit: r1808879 - in /sling/trunk/bundles: extensions/repoinit/parser/src/main/javacc/ extensions/repoinit/parser/src/test/resources/testcases/ jcr/repoinit/src/test/java/org/apache/sling/jcr/repoinit/

Author: tmaret
Date: Tue Sep 19 14:06:25 2017
New Revision: 1808879

URL: http://svn.apache.org/viewvc?rev=1808879&view=rev
Log:
SLING-6774 - Allowed character set in repo init is too restrictive

* Extend path parser and JCR implementation with valid symbols '+', '@' and ':'

Added:
    sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14-output.txt
    sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14.txt
Modified:
    sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt
    sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20-output.txt
    sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20.txt
    sling/trunk/bundles/jcr/repoinit/src/test/java/org/apache/sling/jcr/repoinit/CreatePathsTest.java

Modified: sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt?rev=1808879&r1=1808878&r2=1808879&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/main/javacc/RepoInitGrammar.jjt Tue Sep 19 14:06:25 2017
@@ -90,7 +90,7 @@ TOKEN:
 
 /* The order of these fuzzy statements is important (first match wins?) */ 
 |   < NAMESPACED_ITEM: (["a"-"z"] | ["A"-"Z"])+ ":" (["a"-"z"] | ["A"-"Z"])+ >
-|   < PATH_STRING: "/" (["a"-"z"] | ["A"-"Z"] | ["0"-"9"] | ["-"] | ["_"] | ["."] | ["/"]) * >
+|   < PATH_STRING: "/" (["a"-"z"] | ["A"-"Z"] | ["0"-"9"] | ["-"] | ["_"] | ["."] | ["@"] | [":"] | ["+"] | ["/"]) * >
 |   < STRING: (["a"-"z"] | ["A"-"Z"] | ["0"-"9"] | ["-"] | ["_"] | ["."] | ["/"] | [":"] | ["*"]) * >
 |   < EOL: "\n" >
 }

Added: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14-output.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14-output.txt?rev=1808879&view=auto
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14-output.txt (added)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14-output.txt Tue Sep 19 14:06:25 2017
@@ -0,0 +1,3 @@
+SetAclPaths on /one:name /two+name /three@name 
+  AclLine REMOVE_ALL {principals=[user1]}
+  AclLine ALLOW {principals=[user1], privileges=[jcr:read]}

Added: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14.txt?rev=1808879&view=auto
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14.txt (added)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-14.txt Tue Sep 19 14:06:25 2017
@@ -0,0 +1,5 @@
+# Test allowed path characters, see SLING-6774
+set ACL on /one:name,/two+name,/three@name
+    remove * for user1
+    allow jcr:read for user1
+end
\ No newline at end of file

Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20-output.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20-output.txt?rev=1808879&r1=1808878&r2=1808879&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20-output.txt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20-output.txt Tue Sep 19 14:06:25 2017
@@ -6,4 +6,7 @@ CreatePath [one(mixin [nt:art]), step(mi
 CreatePath [one(nt:foxtrot), step(nt:foxtrot mixin [nt:dance]), two(nt:foxtrot), steps(nt:foxtrot)]
 CreatePath [one, step(mixin [nt:dance, nt:art]), two, steps]
 CreatePath [one, step(nt:foxtrot mixin [nt:dance]), two, steps]
-CreatePath [one, step(nt:foxtrot mixin [nt:dance, nt:art]), two, steps]
\ No newline at end of file
+CreatePath [one, step(nt:foxtrot mixin [nt:dance, nt:art]), two, steps]
+CreatePath [one:and, step, two:and, steps]
+CreatePath [one@home, step, two@home, steps]
+CreatePath [one+tap, step, two+tap, steps]
\ No newline at end of file

Modified: sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20.txt
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20.txt?rev=1808879&r1=1808878&r2=1808879&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20.txt (original)
+++ sling/trunk/bundles/extensions/repoinit/parser/src/test/resources/testcases/test-20.txt Tue Sep 19 14:06:25 2017
@@ -7,4 +7,7 @@ create path /one(mixin nt:art)/step(mixi
 create path (nt:foxtrot) /one/step(mixin nt:dance)/two/steps
 create path /one/step(mixin nt:dance,nt:art)/two/steps
 create path /one/step(nt:foxtrot mixin nt:dance)/two/steps
-create path /one/step(nt:foxtrot mixin nt:dance,nt:art)/two/steps
\ No newline at end of file
+create path /one/step(nt:foxtrot mixin nt:dance,nt:art)/two/steps
+create path /one:and/step/two:and/steps
+create path /one@home/step/two@home/steps
+create path /one+tap/step/two+tap/steps
\ No newline at end of file

Modified: sling/trunk/bundles/jcr/repoinit/src/test/java/org/apache/sling/jcr/repoinit/CreatePathsTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/repoinit/src/test/java/org/apache/sling/jcr/repoinit/CreatePathsTest.java?rev=1808879&r1=1808878&r2=1808879&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/repoinit/src/test/java/org/apache/sling/jcr/repoinit/CreatePathsTest.java (original)
+++ sling/trunk/bundles/jcr/repoinit/src/test/java/org/apache/sling/jcr/repoinit/CreatePathsTest.java Tue Sep 19 14:06:25 2017
@@ -50,6 +50,27 @@ public class CreatePathsTest {
         U.parseAndExecute("create path " + path);
         U.assertNodeExists(path);
     }
+
+    @Test
+    public void createSimplePathWithNamespace() throws Exception {
+        final String path = "/rep:policy/one";
+        U.parseAndExecute("create path " + path);
+        U.assertNodeExists(path);
+    }
+
+    @Test
+    public void createSimplePathWithAtSymbol() throws Exception {
+        final String path = "/one/@two/three";
+        U.parseAndExecute("create path " + path);
+        U.assertNodeExists(path);
+    }
+
+    @Test
+    public void createSimplePathWithPlusSymbol() throws Exception {
+        final String path = "/one/+two/three";
+        U.parseAndExecute("create path " + path);
+        U.assertNodeExists(path);
+    }
     
     @Test
     public void createPathWithTypes() throws Exception {