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);


Reply via email to