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());
+
+    }
 }