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