Index: oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java (revision 1799652) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlListTest.java (revision ) @@ -247,4 +247,19 @@ // 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 Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java (revision 1799652) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/package-info.java (revision ) @@ -14,7 +14,7 @@ * 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; \ No newline at end of file Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java (revision 1799652) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AbstractAccessControlList.java (revision ) @@ -129,6 +129,19 @@ } @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.emptyMap()); } \ No newline at end of file