Author: angela
Date: Fri Feb 5 09:34:40 2016
New Revision: 1728622
URL: http://svn.apache.org/viewvc?rev=1728622&view=rev
Log:
OAK-1268 : Add support for composite authorization setup (consistent param
naming)
Modified:
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/AggregatedPermissionProvider.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractAggrProvider.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/LimitedScopeProvider.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/NoScopeProvider.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/CompositeAuthorizationTest.java
Modified:
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java
Fri Feb 5 09:34:40 2016
@@ -229,7 +229,7 @@ class CugPermissionProvider implements A
}
@Override
- public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState property, long permissions) {
long supported = permissions & Permissions.READ;
if (supported != Permissions.NO_PERMISSION && (treePermission
instanceof CugTreePermission) && ((CugTreePermission)
treePermission).isInCug()) {
return supported;
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
Fri Feb 5 09:34:40 2016
@@ -133,7 +133,7 @@ public class PermissionProviderImpl impl
}
@Override
- public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState property, long permissions) {
return permissions;
}
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/AggregatedPermissionProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/AggregatedPermissionProvider.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/AggregatedPermissionProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/AggregatedPermissionProvider.java
Fri Feb 5 09:34:40 2016
@@ -28,14 +28,12 @@ import org.apache.jackrabbit.oak.spi.sec
/**
* Extension of the {@link PermissionProvider} interface that allows it to be
* used in combination with other provider implementations.
- *
- * TODO This is work in progress (OAK-1268)
*/
public interface AggregatedPermissionProvider extends PermissionProvider {
/**
* Allows to determined the set or subset of privileges evaluated by the
- * implementing permission provider at the specified path or at the
repository
+ * implementing permission provider for the specified tree or at the
repository
* level in case the specified {@code tree} is {@code null}.
*
* If the given {@code privilegeBits} is {@code null} an implementation
returns
@@ -52,17 +50,66 @@ public interface AggregatedPermissionPro
* for repository level privileges.
* @param privilegeBits The privilege(s) to be tested or {@code null}
* @return The set of privileges or the subset of the given {@code
privilegeBits}
- * that are supported and evaluated by the the implementation at the given
{@code tree}
+ * that are supported and evaluated by the implementation at the given
{@code tree}
* represented as {@code PrivilegeBits}.
*/
@Nonnull
PrivilegeBits supportedPrivileges(@Nullable Tree tree, @Nullable
PrivilegeBits privilegeBits);
+ /**
+ * Allows to determined the set or subset of permissions evaluated by the
+ * implementing permission provider for the specified item (identified by
+ * {@code tree} and optionally {@code property}) or at the repository level
+ * in case the specified {@code tree} is {@code null}.
+ *
+ * Returning {@link Permissions#NO_PERMISSION} indicates that this
implementation
+ * is not in charge of evaluating the specified permissions for the
+ * specified item and thus will be ignored while computing the composite
+ * result of {@link PermissionProvider#isGranted(Tree, PropertyState,
long)}.
+ *
+ * @param tree The tree for which the permissions will be evaluated or
{@code null}
+ * for repository level privileges.
+ * @param property The target property or {@code null}.
+ * @param permissions The permisisons to be tested
+ * @return The subset of the given {@code permissions} that are supported
and
+ * evaluated by the implementation for the given item.
+ */
long supportedPermissions(@Nullable Tree tree, @Nullable PropertyState
property, long permissions);
+ /**
+ * Allows to determined the set or subset of permissions evaluated by the
+ * implementing permission provider for the specified location.
+ *
+ * Returning {@link Permissions#NO_PERMISSION} indicates that this
implementation
+ * is not in charge of evaluating the specified permissions for the
+ * specified location and thus will be ignored while computing the
composite
+ * result of {@link PermissionProvider#isGranted(String, String)} and
+ * {@link AggregatedPermissionProvider#isGranted(TreeLocation, long)}.
+ *
+ * @param location The tree location for which the permissions will be
evaluated.
+ * @param permissions The permisisons to be tested
+ * @return The subset of the given {@code permissions} that are supported
and
+ * evaluated by the implementation for the given location.
+ */
long supportedPermissions(@Nonnull TreeLocation location, long
permissions);
- long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState propertyState, long permissions);
+ /**
+ * Allows to determined the set or subset of permissions evaluated by the
+ * implementing permission provider for the specified tree permission (plus
+ * optionally {@code property}).
+ *
+ * Returning {@link Permissions#NO_PERMISSION} indicates that this
implementation
+ * is not in charge of evaluating the specified permissions for the
+ * specified tree permission and thus will be ignored while computing the
composite
+ * result of {@link TreePermission#isGranted(long, PropertyState)} and
{@link TreePermission#isGranted(long)}.
+ *
+ * @param treePermission The target tree permission.
+ * @param property The target property or {@code null}.
+ * @param permissions The permisisons to be tested
+ * @return The subset of the given {@code permissions} that are supported
and
+ * evaluated by the implementation for the given tree permissions.
+ */
+ long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState property, long permissions);
/**
* Test if the specified permissions are granted for the set of {@code
Principal}s
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractAggrProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractAggrProvider.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractAggrProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractAggrProvider.java
Fri Feb 5 09:34:40 2016
@@ -66,7 +66,7 @@ abstract class AbstractAggrProvider impl
}
@Override
- public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState property, long permissions) {
return permissions;
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeProviderCoverageTest.java
Fri Feb 5 09:34:40 2016
@@ -287,7 +287,7 @@ public class CompositeProviderCoverageTe
}
@Override
- public long supportedPermissions(@Nonnull TreePermission
treePermission, @Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission
treePermission, @Nullable PropertyState property, long permissions) {
return permissions & Permissions.READ_NODE;
}
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/LimitedScopeProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/LimitedScopeProvider.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/LimitedScopeProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/LimitedScopeProvider.java
Fri Feb 5 09:34:40 2016
@@ -190,7 +190,7 @@ class LimitedScopeProvider extends Abstr
}
@Override
- public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState property, long permissions) {
if (treePermission instanceof TestTreePermission &&
isSupported(((TestTreePermission) treePermission).path)) {
return permissions & Permissions.WRITE;
} else {
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/NoScopeProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/NoScopeProvider.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/NoScopeProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/NoScopeProvider.java
Fri Feb 5 09:34:40 2016
@@ -56,7 +56,7 @@ final class NoScopeProvider extends Abst
}
@Override
- public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission treePermission,
@Nullable PropertyState property, long permissions) {
return Permissions.NO_PERMISSION;
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/CompositeAuthorizationTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/CompositeAuthorizationTest.java?rev=1728622&r1=1728621&r2=1728622&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/CompositeAuthorizationTest.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/CompositeAuthorizationTest.java
Fri Feb 5 09:34:40 2016
@@ -257,7 +257,7 @@ public class CompositeAuthorizationTest
}
@Override
- public long supportedPermissions(@Nonnull TreePermission
treePermission, @Nullable PropertyState propertyState, long permissions) {
+ public long supportedPermissions(@Nonnull TreePermission
treePermission, @Nullable PropertyState property, long permissions) {
return permissions;
}