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