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 st...@apache.org on 2017/07/14 13:28:45 UTC
svn commit: r1801963 -
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAuthorizationConfiguration.java
Author: stillalex
Date: Fri Jul 14 13:28:45 2017
New Revision: 1801963
URL: http://svn.apache.org/viewvc?rev=1801963&view=rev
Log:
OAK-6451 MultiplexingPermissionProvider is ignored by the CompositeAuthorizationConfiguration
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAuthorizationConfiguration.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAuthorizationConfiguration.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAuthorizationConfiguration.java?rev=1801963&r1=1801962&r2=1801963&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAuthorizationConfiguration.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeAuthorizationConfiguration.java Fri Jul 14 13:28:45 2017
@@ -174,10 +174,13 @@ public class CompositeAuthorizationConfi
case 1: return configurations.get(0).getPermissionProvider(root, workspaceName, principals);
default:
List<AggregatedPermissionProvider> aggrPermissionProviders = new ArrayList<>(configurations.size());
+ CompositePermissionProvider composite = null;
for (AuthorizationConfiguration conf : configurations) {
PermissionProvider pProvider = conf.getPermissionProvider(root, workspaceName, principals);
if (pProvider instanceof AggregatedPermissionProvider) {
aggrPermissionProviders.add((AggregatedPermissionProvider) pProvider);
+ } else if (pProvider instanceof CompositePermissionProvider) {
+ composite = (CompositePermissionProvider) pProvider;
} else {
log.debug("Ignoring permission provider of '{}': Not an AggregatedPermissionProvider", conf.getClass().getName());
}
@@ -185,7 +188,11 @@ public class CompositeAuthorizationConfi
PermissionProvider pp;
switch (aggrPermissionProviders.size()) {
case 0 :
- pp = EmptyPermissionProvider.getInstance();
+ if (composite != null) {
+ pp = composite;
+ } else {
+ pp = EmptyPermissionProvider.getInstance();
+ }
break;
case 1 :
pp = aggrPermissionProviders.get(0);