Author: tripod
Date: Thu Feb 27 18:37:34 2014
New Revision: 1572672

URL: http://svn.apache.org/r1572672
Log:
Revert "OAK-1474: revert changes made rev. 1572401"

This reverts commit 061bdb5fef8040cbc39b1040cd8190f169a8dfb3.

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/SecurityProviderImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
    
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/security/principal/PrincipalConfigurationImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserConfigurationImpl.java
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/SecurityProviderImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/SecurityProviderImpl.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/SecurityProviderImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/SecurityProviderImpl.java
 Thu Feb 27 18:37:34 2014
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.security;
 
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
@@ -211,36 +210,31 @@ public class SecurityProviderImpl implem
     }
 
     protected void bindAuthorizationConfiguration(@Nonnull ServiceReference 
reference) {
-        // also initialize authorization config specific default parameters or 
OSGi environments
+        // also add authorization config specific default parameters for OSGi 
environments
+        // todo: the config class should track the 'restrictionProvider' 
itself.
         Map<String, WhiteboardRestrictionProvider> authorizMap = 
ImmutableMap.of(
                 AccessControlConstants.PARAM_RESTRICTION_PROVIDER, 
restrictionProvider
         );
-        Map<String, Object> newConfig = new HashMap<String, 
Object>(configuration);
-        newConfig.put(AuthorizationConfiguration.NAME, 
ConfigurationParameters.of(authorizMap));
-        configuration = ConfigurationParameters.of(newConfig);
-
-        authorizationConfiguration = (AuthorizationConfiguration) 
initConfiguration(reference);
+        authorizationConfiguration =
+                (AuthorizationConfiguration) initConfiguration(reference, 
ConfigurationParameters.of(authorizMap));
     }
 
     protected void bindAuthenticationConfiguration(@Nonnull ServiceReference 
reference) {
-        authenticationConfiguration = (AuthenticationConfiguration) 
initConfiguration(reference);
+        authenticationConfiguration =
+                (AuthenticationConfiguration) initConfiguration(reference, 
ConfigurationParameters.EMPTY);
     }
 
     protected void bindUserConfiguration(@Nonnull ServiceReference reference) {
-        // also initialize user config specific default parameters or OSGi 
environments
+        // also initialize user config specific default parameters for OSGi 
environments
+        // todo: the config class should track the 'providers' itself.
         Map<String, Object> userMap = ImmutableMap.of(
                 UserConstants.PARAM_AUTHORIZABLE_ACTION_PROVIDER, 
authorizableActionProvider,
                 UserConstants.PARAM_AUTHORIZABLE_NODE_NAME, 
authorizableNodeName);
-
-        Map<String, Object> newConfig = new HashMap<String, 
Object>(configuration);
-        newConfig.put(UserConfiguration.NAME, 
ConfigurationParameters.of(userMap));
-        configuration = ConfigurationParameters.of(newConfig);
-
-        userConfiguration = (UserConfiguration) initConfiguration(reference);
+        userConfiguration = (UserConfiguration) initConfiguration(reference, 
ConfigurationParameters.of(userMap));
     }
 
     protected void bindPrivilegeConfiguration(@Nonnull ServiceReference 
reference) {
-        privilegeConfiguration = (PrivilegeConfiguration) 
initConfiguration(reference);
+        privilegeConfiguration = (PrivilegeConfiguration) 
initConfiguration(reference, ConfigurationParameters.EMPTY);
     }
 
     protected void bindPrincipalConfiguration(@Nonnull ServiceReference 
reference) {
@@ -249,7 +243,7 @@ public class SecurityProviderImpl implem
             principalConfiguration = new CompositePrincipalConfiguration(this);
         }
         ((CompositePrincipalConfiguration) 
principalConfiguration).addConfiguration(
-                (PrincipalConfiguration) initConfiguration(reference));
+                (PrincipalConfiguration) initConfiguration(reference, 
ConfigurationParameters.EMPTY));
     }
 
     protected void unbindPrincipalConfiguration(@Nonnull ServiceReference 
reference) {
@@ -267,7 +261,7 @@ public class SecurityProviderImpl implem
             tokenConfiguration = new CompositeTokenConfiguration(this);
         }
         ((CompositeTokenConfiguration) tokenConfiguration).addConfiguration(
-                (TokenConfiguration) initConfiguration(reference));
+                (TokenConfiguration) initConfiguration(reference, 
ConfigurationParameters.EMPTY));
     }
 
     protected void unbindTokenConfiguration(@Nonnull ServiceReference 
reference) {
@@ -286,10 +280,12 @@ public class SecurityProviderImpl implem
         }
     }
 
-    private Object initConfiguration(@Nonnull ServiceReference reference) {
+    private Object initConfiguration(@Nonnull ServiceReference reference, 
@Nonnull ConfigurationParameters params) {
         Object service = 
reference.getBundle().getBundleContext().getService(reference);
         if (service instanceof ConfigurationBase) {
-            ((ConfigurationBase) service).setSecurityProvider(this);
+            ConfigurationBase cfg = (ConfigurationBase) service;
+            cfg.setSecurityProvider(this);
+            cfg.setParameters(ConfigurationParameters.of(params, 
cfg.getParameters()));
         }
         return service;
     }

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/AuthenticationConfigurationImpl.java
 Thu Feb 27 18:37:34 2014
@@ -16,13 +16,17 @@
  */
 package org.apache.jackrabbit.oak.security.authentication;
 
+import java.util.Dictionary;
+
 import javax.annotation.Nonnull;
 import javax.security.auth.login.Configuration;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.oak.api.ContentRepository;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.AuthenticationConfiguration;
@@ -58,12 +62,17 @@ public class AuthenticationConfiguration
         super();
     }
 
+    @Activate
+    private void activate(Dictionary<String, Object> properties) {
+        setParameters(ConfigurationParameters.of(properties));
+    }
+
     /**
      * Constructor for non-OSGi
      * @param securityProvider
      */
     public AuthenticationConfigurationImpl(SecurityProvider securityProvider) {
-        super(securityProvider);
+        super(securityProvider, securityProvider.getParameters(NAME));
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenConfigurationImpl.java
 Thu Feb 27 18:37:34 2014
@@ -16,8 +16,11 @@
  */
 package org.apache.jackrabbit.oak.security.authentication.token;
 
+import java.util.Dictionary;
+
 import javax.annotation.Nonnull;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.oak.api.Root;
@@ -41,7 +44,12 @@ public class TokenConfigurationImpl exte
     }
 
     public TokenConfigurationImpl(SecurityProvider securityProvider) {
-        super(securityProvider);
+        super(securityProvider, securityProvider.getParameters(NAME));
+    }
+
+    @Activate
+    private void activate(Dictionary<String, Object> properties) {
+        setParameters(ConfigurationParameters.of(properties));
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---

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=1572672&r1=1572671&r2=1572672&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
 Thu Feb 27 18:37:34 2014
@@ -18,12 +18,14 @@ package org.apache.jackrabbit.oak.securi
 
 import java.security.Principal;
 import java.util.Collections;
+import java.util.Dictionary;
 import java.util.List;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.jcr.security.AccessControlManager;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.oak.api.Root;
@@ -43,6 +45,7 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
 import org.apache.jackrabbit.oak.spi.lifecycle.WorkspaceInitializer;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.Context;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
@@ -67,8 +70,14 @@ public class AuthorizationConfigurationI
         super();
     }
 
+    @Activate
+    private void activate(Dictionary<String, Object> properties) {
+        setParameters(ConfigurationParameters.of(properties));
+    }
+
+
     public AuthorizationConfigurationImpl(SecurityProvider securityProvider) {
-        super(securityProvider);
+        super(securityProvider, securityProvider.getParameters(NAME));
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalConfigurationImpl.java
 Thu Feb 27 18:37:34 2014
@@ -16,14 +16,18 @@
  */
 package org.apache.jackrabbit.oak.security.principal;
 
+import java.util.Dictionary;
+
 import javax.annotation.Nonnull;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration;
@@ -43,9 +47,15 @@ public class PrincipalConfigurationImpl 
     }
 
     public PrincipalConfigurationImpl(SecurityProvider securityProvider) {
-        super(securityProvider);
+        super(securityProvider, securityProvider.getParameters(NAME));
+    }
+
+    @Activate
+    private void activate(Dictionary<String, Object> properties) {
+        setParameters(ConfigurationParameters.of(properties));
     }
 
+
     //---------------------------------------------< PrincipalConfiguration 
>---
     @Nonnull
     @Override

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeConfigurationImpl.java
 Thu Feb 27 18:37:34 2014
@@ -18,11 +18,13 @@ package org.apache.jackrabbit.oak.securi
 
 import java.security.Principal;
 import java.util.Collections;
+import java.util.Dictionary;
 import java.util.List;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.api.security.authorization.PrivilegeManager;
@@ -33,6 +35,7 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.Context;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConfiguration;
@@ -51,6 +54,11 @@ public class PrivilegeConfigurationImpl 
         return new PrivilegeManagerImpl(root, namePathMapper);
     }
 
+    @Activate
+    private void activate(Dictionary<String, Object> properties) {
+        setParameters(ConfigurationParameters.of(properties));
+    }
+
     //----------------------------------------------< SecurityConfiguration 
>---
     @Nonnull
     @Override

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserConfigurationImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserConfigurationImpl.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserConfigurationImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserConfigurationImpl.java
 Thu Feb 27 18:37:34 2014
@@ -18,11 +18,13 @@ package org.apache.jackrabbit.oak.securi
 
 import java.security.Principal;
 import java.util.Collections;
+import java.util.Dictionary;
 import java.util.List;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
 
+import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.jackrabbit.api.security.user.UserManager;
@@ -33,6 +35,7 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider;
 import org.apache.jackrabbit.oak.spi.lifecycle.WorkspaceInitializer;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationBase;
+import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.Context;
 import org.apache.jackrabbit.oak.spi.security.SecurityConfiguration;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
@@ -52,7 +55,12 @@ public class UserConfigurationImpl exten
     }
 
     public UserConfigurationImpl(SecurityProvider securityProvider) {
-        super(securityProvider);
+        super(securityProvider, securityProvider.getParameters(NAME));
+    }
+
+    @Activate
+    private void activate(Dictionary<String, Object> properties) {
+        setParameters(ConfigurationParameters.of(properties));
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java?rev=1572672&r1=1572671&r2=1572672&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/ConfigurationBase.java
 Thu Feb 27 18:37:34 2014
@@ -18,25 +18,27 @@ package org.apache.jackrabbit.oak.spi.se
 
 import javax.annotation.Nonnull;
 
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.osgi.service.component.ComponentContext;
-
 /**
  * Abstract base implementation for the various security configurations.
  */
-@Component(componentAbstract = true)
 public abstract class ConfigurationBase extends SecurityConfiguration.Default {
 
     private SecurityProvider securityProvider;
+
     private ConfigurationParameters config = ConfigurationParameters.EMPTY;
 
+    /**
+     * osgi constructor
+     */
     public ConfigurationBase() {
     }
 
-    public ConfigurationBase(SecurityProvider securityProvider) {
+    /**
+     * non-osgi constructor
+     */
+    public ConfigurationBase(@Nonnull SecurityProvider securityProvider, 
@Nonnull ConfigurationParameters config) {
         this.securityProvider = securityProvider;
-        this.config = securityProvider.getParameters(getName());
+        this.config = config;
     }
 
     @Nonnull
@@ -49,7 +51,10 @@ public abstract class ConfigurationBase 
 
     public void setSecurityProvider(@Nonnull SecurityProvider 
securityProvider) {
         this.securityProvider = securityProvider;
-        config = 
ConfigurationParameters.of(securityProvider.getParameters(getName()), config);
+    }
+
+    public void setParameters(@Nonnull ConfigurationParameters config) {
+        this.config = config;
     }
 
     //----------------------------------------------< SecurityConfiguration 
>---
@@ -59,9 +64,4 @@ public abstract class ConfigurationBase 
         return config;
     }
 
-    //----------------------------------------------------< SCR Integration 
>---
-    @Activate
-    protected void activate(ComponentContext context) {
-        config = ConfigurationParameters.of(context.getProperties());
-    }
 }


Reply via email to