You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2019/02/01 12:39:46 UTC
svn commit: r1852728 - in /jackrabbit/oak/trunk/oak-security-spi/src:
main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/
test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/
Author: angela
Date: Fri Feb 1 12:39:46 2019
New Revision: 1852728
URL: http://svn.apache.org/viewvc?rev=1852728&view=rev
Log:
OAK-8020 : Create ImmutableACL from another AbstractAccessControlList
Modified:
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java
jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java
jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACLTest.java
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java?rev=1852728&r1=1852727&r2=1852728&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACL.java Fri Feb 1 12:39:46 2019
@@ -44,7 +44,7 @@ public class ImmutableACL extends Abstra
private int hashCode;
/**
- * Construct a new {@code UnmodifiableAccessControlList}
+ * Construct a new {@code ImmutableACL}
*
* @param oakPath The Oak path of this policy or {@code null}.
* @param entries The access control entries contained in this policy.
@@ -60,6 +60,15 @@ public class ImmutableACL extends Abstra
this.restrictionProvider = restrictionProvider;
}
+ /**
+ * Construct a new {@code ImmutableACL} from the given {@code AbstractAccessControlList}.
+ *
+ * @param accessControlList The base list
+ */
+ public ImmutableACL(@NotNull AbstractAccessControlList accessControlList) {
+ this(accessControlList.getOakPath(), accessControlList.getEntries(), accessControlList.getRestrictionProvider(), accessControlList.getNamePathMapper());
+ }
+
//--------------------------------------------------< AccessControlList >---
@Override
Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java?rev=1852728&r1=1852727&r2=1852728&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java Fri Feb 1 12:39:46 2019
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-@Version("1.5.1")
+@Version("1.6.0")
package org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol;
import org.osgi.annotation.versioning.Version;
Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACLTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACLTest.java?rev=1852728&r1=1852727&r2=1852728&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACLTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ImmutableACLTest.java Fri Feb 1 12:39:46 2019
@@ -24,6 +24,8 @@ import javax.jcr.security.AccessControlE
import javax.jcr.security.AccessControlException;
import javax.jcr.security.Privilege;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
@@ -38,6 +40,7 @@ import org.mockito.Mockito;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.when;
@@ -219,4 +222,22 @@ public class ImmutableACLTest extends Ab
assertFalse(hc == new TestACL("/anotherPath", rp, getNamePathMapper()).hashCode());
assertFalse(hc == new TestACL(getTestPath(), rp, getNamePathMapper(), ace1, ace2).hashCode());
}
+
+ @Test
+ public void testCreateFromBaseList() throws Exception {
+ AbstractAccessControlList aacl = Mockito.mock(AbstractAccessControlList.class);
+ when(aacl.getPath()).thenReturn("/path");
+ List entries = Lists.newArrayList(createEntry(true, PrivilegeConstants.JCR_READ, PrivilegeConstants.JCR_ADD_CHILD_NODES));
+ when(aacl.getEntries()).thenReturn(entries);
+ when(aacl.getRestrictionProvider()).thenReturn(getRestrictionProvider());
+ when(aacl.getNamePathMapper()).thenReturn(NamePathMapper.DEFAULT);
+
+ ImmutableACL iacl = new ImmutableACL(aacl);
+ assertImmutable(iacl);
+
+ assertTrue(Iterables.elementsEqual(entries, iacl.getEntries()));
+ assertSame(aacl.getRestrictionProvider(), iacl.getRestrictionProvider());
+ assertSame(aacl.getNamePathMapper(), iacl.getNamePathMapper());
+
+ }
}