Author: angela
Date: Thu Mar 12 16:21:06 2015
New Revision: 1666236
URL: http://svn.apache.org/r1666236
Log:
adding test case for a privilege including jcr:all in the aggregated privilege
names
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java?rev=1666236&r1=1666235&r2=1666236&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeValidatorTest.java
Thu Mar 12 16:21:06 2015
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.securi
import java.util.Collections;
import com.google.common.collect.ImmutableList;
-
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.AbstractSecurityTest;
import org.apache.jackrabbit.oak.api.CommitFailedException;
@@ -27,9 +26,6 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
-import org.apache.jackrabbit.oak.plugins.tree.TreeFactory;
-import org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree;
-import org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBitsProvider;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -195,4 +191,22 @@ public class PrivilegeValidatorTest exte
PrivilegeValidator pv = new PrivilegeValidator(root, root);
assertNull(pv.childNodeChanged("test", privilegeDefinition,
privilegeDefinition));
}
+
+ @Test
+ public void testAggregatesIncludesJcrAll() throws Exception {
+ try {
+ Tree privTree = createPrivilegeTree();
+ privTree.setProperty(PropertyStates.createProperty(REP_AGGREGATES,
ImmutableList.of(JCR_ALL, JCR_READ, JCR_WRITE), Type.NAMES));
+ PrivilegeBits.getInstance(bitsProvider.getBits(JCR_ALL, JCR_READ,
JCR_WRITE)).writeTo(privTree);
+
+ root.commit();
+ fail("Aggregation containing jcr:all is invalid.");
+ } catch (CommitFailedException e) {
+ // success
+ assertTrue(e.isConstraintViolation());
+ assertEquals(53, e.getCode());
+ } finally {
+ root.refresh();
+ }
+ }
}
\ No newline at end of file
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java?rev=1666236&r1=1666235&r2=1666236&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/privilege/PrivilegeRegistrationTest.java
Thu Mar 12 16:21:06 2015
@@ -38,6 +38,7 @@ import com.google.common.collect.Immutab
import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
import
org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils;
+import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.jcr.Jcr;
import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
@@ -438,4 +439,21 @@ public class PrivilegeRegistrationTest e
assertTrue(acMgr.hasPrivileges(testPath, principalSet, allPrivileges));
}
+
+ @Test
+ public void testRegisterPrivilegeAggregatingJcrAll() throws Exception {
+ privilegeManager.registerPrivilege("customPriv", false, null);
+
+ try {
+ privilegeManager.registerPrivilege("customPriv2", false, new
String[]{"customPriv", Privilege.JCR_ALL});
+ fail("Aggregation containing jcr:all is invalid.");
+ } catch (RepositoryException e) {
+ // success
+ Throwable cause = e.getCause();
+ assertTrue(cause instanceof CommitFailedException);
+ assertEquals(53, ((CommitFailedException) cause).getCode());
+ } finally {
+ superuser.refresh(false);
+ }
+ }
}
\ No newline at end of file