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 {