Author: stillalex
Date: Fri Sep 15 14:42:38 2017
New Revision: 1808460

URL: http://svn.apache.org/viewvc?rev=1808460&view=rev
Log:
OAK-6663 Revisit MountInfoProvider usage in AuthorizationConfigurationImpl


Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AccessControlConstants.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderRandomTestIT.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderTest.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImpl.java?rev=1808460&r1=1808459&r2=1808460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationConfigurationImpl.java
 Fri Sep 15 14:42:38 2017
@@ -115,7 +115,7 @@ import com.google.common.collect.Immutab
 public class AuthorizationConfigurationImpl extends ConfigurationBase 
implements AuthorizationConfiguration {
 
     @Reference
-    private MountInfoProvider mountInfoProvider;
+    private MountInfoProvider mountInfoProvider = 
Mounts.defaultMountInfoProvider();
 
     public AuthorizationConfigurationImpl() {
         super();
@@ -129,8 +129,6 @@ public class AuthorizationConfigurationI
 
     public AuthorizationConfigurationImpl(SecurityProvider securityProvider) {
         super(securityProvider, securityProvider.getParameters(NAME));
-        mountInfoProvider = 
getParameters().getConfigValue(AccessControlConstants.PARAM_MOUNT_PROVIDER,
-                Mounts.defaultMountInfoProvider(), MountInfoProvider.class);
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---
@@ -207,4 +205,12 @@ public class AuthorizationConfigurationI
                     getParameters(), ctx);
         }
     }
+
+    public void bindMountInfoProvider(MountInfoProvider mountInfoProvider) {
+        this.mountInfoProvider = mountInfoProvider;
+    }
+
+    public void unbindMountInfoProvider(MountInfoProvider mountInfoProvider) {
+        this.mountInfoProvider = null;
+    }
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AccessControlConstants.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AccessControlConstants.java?rev=1808460&r1=1808459&r2=1808460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AccessControlConstants.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/accesscontrol/AccessControlConstants.java
 Fri Sep 15 14:42:38 2017
@@ -82,6 +82,4 @@ public interface AccessControlConstants
     Collection<String> AC_NODETYPE_NAMES = ImmutableSet.of(NT_REP_POLICY, 
NT_REP_ACL, NT_REP_ACE, NT_REP_DENY_ACE, NT_REP_GRANT_ACE, NT_REP_RESTRICTIONS);
 
     String PARAM_RESTRICTION_PROVIDER = "restrictionProvider";
-
-    String PARAM_MOUNT_PROVIDER = "mountInfoProvider";
 }

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java?rev=1808460&r1=1808459&r2=1808460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java
 Fri Sep 15 14:42:38 2017
@@ -127,11 +127,15 @@ public abstract class AbstractSecurityTe
 
     protected SecurityProvider getSecurityProvider() {
         if (securityProvider == null) {
-            securityProvider = new 
SecurityProviderImpl(getSecurityConfigParameters());
+            securityProvider = initSecurityProvider();
         }
         return securityProvider;
     }
 
+    protected SecurityProvider initSecurityProvider() {
+        return new SecurityProviderImpl(getSecurityConfigParameters());
+    }
+
     protected Oak withEditors(Oak oak) {
         return oak;
     }

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderRandomTestIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderRandomTestIT.java?rev=1808460&r1=1808459&r2=1808460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderRandomTestIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderRandomTestIT.java
 Fri Sep 15 14:42:38 2017
@@ -17,22 +17,20 @@
 package org.apache.jackrabbit.oak.security.authorization.permission;
 
 import java.security.Principal;
-import java.util.Collections;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
 
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
+import 
org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl;
+import 
org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration;
 import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
 import org.apache.jackrabbit.oak.spi.mount.Mounts;
-import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration;
-import 
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider;
 import org.junit.Assert;
 
-import com.google.common.base.Preconditions;
 import com.google.common.collect.Iterators;
 
 public class MountPermissionProviderRandomTestIT extends 
AbstractPermissionRandomTestIT {
@@ -56,14 +54,14 @@ public class MountPermissionProviderRand
     @Override
     protected PermissionProvider candidatePermissionProvider(@Nonnull Root 
root, @Nonnull String workspaceName,
             @Nonnull Set<Principal> principals) {
-        ConfigurationParameters authConfig = 
ConfigurationParameters.of(Collections.singletonMap(
-                AccessControlConstants.PARAM_MOUNT_PROVIDER, 
Preconditions.checkNotNull(mountInfoProvider)));
-        ConfigurationParameters config = 
ConfigurationParameters.of(Collections.singletonMap(
-                AuthorizationConfiguration.NAME, authConfig));
-        SecurityProviderImpl sp = new SecurityProviderImpl(config);
+        SecurityProviderImpl sp = new SecurityProviderImpl();
         AuthorizationConfiguration acConfig = 
sp.getConfiguration(AuthorizationConfiguration.class);
+        Assert.assertTrue(acConfig instanceof 
CompositeAuthorizationConfiguration);
+        ((AuthorizationConfigurationImpl) 
((CompositeAuthorizationConfiguration) acConfig).getDefaultConfig())
+                .bindMountInfoProvider(mountInfoProvider);
         PermissionProvider composite = acConfig.getPermissionProvider(root, 
workspaceName, principals);
         Assert.assertTrue(composite instanceof MountPermissionProvider);
         return composite;
     }
+
 }
\ No newline at end of file

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderTest.java?rev=1808460&r1=1808459&r2=1808460&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/MountPermissionProviderTest.java
 Fri Sep 15 14:42:38 2017
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertTrue;
 
 import java.security.Principal;
-import java.util.Collections;
 
 import javax.jcr.security.AccessControlManager;
 
@@ -33,21 +32,21 @@ import org.apache.jackrabbit.oak.api.Con
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.api.Tree;
 import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
+import 
org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl;
+import 
org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration;
 import org.apache.jackrabbit.oak.spi.mount.Mount;
 import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
 import org.apache.jackrabbit.oak.spi.mount.Mounts;
-import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants;
 import 
org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionConstants;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableMap;
-
 public class MountPermissionProviderTest extends AbstractSecurityTest
         implements AccessControlConstants, PrivilegeConstants, 
PermissionConstants {
 
@@ -78,10 +77,13 @@ public class MountPermissionProviderTest
     }
 
     @Override
-    protected ConfigurationParameters getSecurityConfigParameters() {
-        ConfigurationParameters authConfig = 
ConfigurationParameters.of(Collections.singletonMap(
-                AccessControlConstants.PARAM_MOUNT_PROVIDER, 
Preconditions.checkNotNull(mountInfoProvider)));
-        return 
ConfigurationParameters.of(ImmutableMap.of(AuthorizationConfiguration.NAME, 
authConfig));
+    protected SecurityProvider initSecurityProvider() {
+        SecurityProvider sp = super.initSecurityProvider();
+        AuthorizationConfiguration acConfig = 
sp.getConfiguration(AuthorizationConfiguration.class);
+        Assert.assertTrue(acConfig instanceof 
CompositeAuthorizationConfiguration);
+        ((AuthorizationConfigurationImpl) 
((CompositeAuthorizationConfiguration) acConfig).getDefaultConfig())
+                .bindMountInfoProvider(mountInfoProvider);
+        return sp;
     }
 
     @Test


Reply via email to