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 re...@apache.org on 2017/06/27 11:42:01 UTC

svn commit: r1800051 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/ test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/

Author: reschke
Date: Tue Jun 27 11:42:00 2017
New Revision: 1800051

URL: http://svn.apache.org/viewvc?rev=1800051&view=rev
Log:
OAK-6382: Adjust AccessControlList implementations to reflect JCR-4144

(@Override annotation to be fixed once OAK-6389 (Jackrabbit 2.15.4) is implemented)

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java?rev=1800051&r1=1800050&r2=1800051&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java Tue Jun 27 11:42:00 2017
@@ -128,11 +128,23 @@ public abstract class AbstractAccessCont
         return PropertyType.UNDEFINED;
     }
 
+    // OAK-6389 @Override
+    public boolean isMultiValueRestriction(String restrictionName) throws RepositoryException {
+        for (RestrictionDefinition definition : getRestrictionProvider().getSupportedRestrictions(getOakPath())) {
+            String jcrName = namePathMapper.getJcrName(definition.getName());
+            if (jcrName.equals(restrictionName)) {
+                return definition.getRequiredType().isArray();
+            }
+        }
+        // not a supported restriction => return false.
+        return false;
+    }
+
+
     @Override
     public boolean addEntry(Principal principal, Privilege[] privileges, boolean isAllow) throws RepositoryException {
         return addEntry(principal, privileges, isAllow, Collections.<String, Value>emptyMap());
     }
-
     @Override
     public boolean addEntry(Principal principal, Privilege[] privileges, boolean isAllow, Map<String, Value> restrictions) throws RepositoryException {
         return addEntry(principal, privileges, isAllow, restrictions, null);

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java?rev=1800051&r1=1800050&r2=1800051&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java Tue Jun 27 11:42:00 2017
@@ -14,9 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("1.4.0")
+@Version("1.5.0")
 @Export(optional = "provide:=true")
 package org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol;
-
 import aQute.bnd.annotation.Export;
 import aQute.bnd.annotation.Version;
\ No newline at end of file

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java?rev=1800051&r1=1800050&r2=1800051&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java Tue Jun 27 11:42:00 2017
@@ -247,4 +247,19 @@ public class AbstractAccessControlListTe
         // UNDEFINED for a unknown restriction name:
         assertEquals(PropertyType.UNDEFINED, acl.getRestrictionType("unknownRestrictionName"));
     }
+
+    @Test
+    public void testIsMultiValueRestriction() throws RepositoryException {
+        AbstractAccessControlList acl = createEmptyACL();
+        for (RestrictionDefinition def : getRestrictionProvider().getSupportedRestrictions(getTestPath())) {
+            boolean isMv = acl.isMultiValueRestriction(getNamePathMapper().getJcrName(def.getName()));
+
+            assertEquals(def.getRequiredType().isArray(), isMv);
+        }
+    }
+
+    @Test
+    public void testIsMultiValueRestrictionForUnknownName() throws RepositoryException {
+        assertFalse(createEmptyACL().isMultiValueRestriction("unknownRestrictionName"));
+    }
 }
\ No newline at end of file