You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2023/04/27 15:23:06 UTC

[jackrabbit-filevault] 01/01: try to read principal ACLs being set in setUp(...)

This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch feature/test-principal-based-it
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git

commit 85c1be412718643350e1e8bf9fc24d923699e388
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Thu Apr 27 17:22:57 2023 +0200

    try to read principal ACLs being set in setUp(...)
---
 .../packaging/integration/PrincipalBasedIT.java    | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/PrincipalBasedIT.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/PrincipalBasedIT.java
index 50d56380..2d189660 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/PrincipalBasedIT.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/PrincipalBasedIT.java
@@ -22,7 +22,9 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.api.JackrabbitSession;
+import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlManager;
+import org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy;
 import org.apache.jackrabbit.api.security.authorization.PrincipalAccessControlList;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
@@ -53,11 +55,14 @@ import org.junit.ClassRule;
 import org.junit.Ignore;
 import org.junit.Test;
 
+import javax.jcr.AccessDeniedException;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
+import javax.jcr.UnsupportedRepositoryOperationException;
 import javax.jcr.Value;
 import javax.jcr.ValueFactory;
 import javax.jcr.security.AccessControlEntry;
+import javax.jcr.security.AccessControlException;
 import javax.jcr.security.AccessControlPolicy;
 import javax.jcr.security.Privilege;
 import java.security.Principal;
@@ -201,6 +206,24 @@ public class PrincipalBasedIT extends IntegrationTestBase {
         fail("expected PrincipalAccessControlList for principal " + principal.getName());
     }
 
+    @Test
+    public void testEntriesFromSetup() throws AccessDeniedException, AccessControlException, UnsupportedRepositoryOperationException, RepositoryException {
+        @NotNull
+        JackrabbitAccessControlPolicy[] applicablePolicies = acMgr.getApplicablePolicies(testUser.getPrincipal());
+        // for some reason only 1 is returned and no longer 2 as in the setUp method
+        assertEquals(1, applicablePolicies.length);
+        JackrabbitAccessControlPolicy policy = applicablePolicies[0];
+        if (policy instanceof PrincipalAccessControlList) {
+            // this should be returned as in setup
+        } else if (policy instanceof JackrabbitAccessControlList) {
+            // this is instead returned with no entries!
+            AccessControlEntry[] entries = ((JackrabbitAccessControlList) policy).getAccessControlEntries();
+            assertEquals(2, entries.length); // this should be the two from setUp(..)
+        } else {
+            fail("Found unexpected policy for principal " + testUser.getPrincipal());
+        }
+    }
+
     @Test
     public void testHandlingIgnoreModeUpdate() throws Exception {
         assumeTrue(isOak());