Author: angela
Date: Fri Dec  1 10:47:25 2017
New Revision: 1816825

URL: http://svn.apache.org/viewvc?rev=1816825&view=rev
Log:
OAK-7018 : Move setup of composite security configurations to 
SecurityProviderBuilder

Modified:
    
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestSecurityProvider.java
    
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java
    
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestSecurityProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestSecurityProvider.java?rev=1816825&r1=1816824&r2=1816825&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestSecurityProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/TestSecurityProvider.java
 Fri Dec  1 10:47:25 2017
@@ -31,18 +31,6 @@ public final class TestSecurityProvider
 
     public static SecurityProvider newTestSecurityProvider(@Nonnull 
ConfigurationParameters configuration,
             @Nonnull ExternalPrincipalConfiguration 
externalPrincipalConfiguration) {
-        SecurityProvider delegate = new 
SecurityProviderBuilder().with(configuration).build();
-
-        PrincipalConfiguration principalConfiguration = 
delegate.getConfiguration(PrincipalConfiguration.class);
-        if (!(principalConfiguration instanceof 
CompositePrincipalConfiguration)) {
-            throw new IllegalStateException();
-        } else {
-            externalPrincipalConfiguration.setSecurityProvider(delegate);
-            CompositePrincipalConfiguration composite = 
(CompositePrincipalConfiguration) principalConfiguration;
-            PrincipalConfiguration defConfig = composite.getDefaultConfig();
-            composite.addConfiguration(externalPrincipalConfiguration);
-            composite.addConfiguration(defConfig);
-        }
-        return delegate;
+        return new 
SecurityProviderBuilder().with(configuration).with(externalPrincipalConfiguration,
 PrincipalConfiguration.class).build();
     }
 }
\ No newline at end of file

Modified: 
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java?rev=1816825&r1=1816824&r2=1816825&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java
 Fri Dec  1 10:47:25 2017
@@ -31,22 +31,9 @@ final class CugSecurityProvider {
     private CugSecurityProvider() {}
 
     public static SecurityProvider newTestSecurityProvider(@Nonnull 
ConfigurationParameters configuration) {
-        SecurityProvider delegate = new 
SecurityProviderBuilder().with(configuration).build();
+        CugConfiguration cugConfiguration = new CugConfiguration();
+        
cugConfiguration.activate(configuration.getConfigValue(AuthorizationConfiguration.NAME,
 ConfigurationParameters.EMPTY));
 
-        AuthorizationConfiguration authorizationConfiguration = delegate
-                .getConfiguration(AuthorizationConfiguration.class);
-        if (!(authorizationConfiguration instanceof 
CompositeAuthorizationConfiguration)) {
-            throw new IllegalStateException();
-        } else {
-            CugConfiguration cugConfiguration = new CugConfiguration();
-            cugConfiguration.setSecurityProvider(delegate);
-            
cugConfiguration.activate(configuration.getConfigValue(AuthorizationConfiguration.NAME,
 ConfigurationParameters.EMPTY));
-
-            CompositeAuthorizationConfiguration composite = 
(CompositeAuthorizationConfiguration) authorizationConfiguration;
-            AuthorizationConfiguration defConfig = 
checkNotNull(composite.getDefaultConfig());
-            composite.addConfiguration(cugConfiguration);
-            composite.addConfiguration(defConfig);
-        }
-        return delegate;
+        return new 
SecurityProviderBuilder().with(configuration).with(cugConfiguration, 
AuthorizationConfiguration.class).build();
     }
 }
\ No newline at end of file

Modified: 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java?rev=1816825&r1=1816824&r2=1816825&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/internal/SecurityProviderBuilder.java
 Fri Dec  1 10:47:25 2017
@@ -19,8 +19,13 @@ package org.apache.jackrabbit.oak.securi
 import javax.annotation.Nonnull;
 
 import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
+import org.apache.jackrabbit.oak.spi.security.CompositeConfiguration;
+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.CompositePrincipalConfiguration;
+import org.apache.jackrabbit.oak.spi.security.principal.PrincipalConfiguration;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -28,16 +33,45 @@ public class SecurityProviderBuilder {
 
     private ConfigurationParameters configuration = null;
 
+    private SecurityConfiguration sc;
+    private Class<? extends SecurityConfiguration> cls;
+
     public SecurityProviderBuilder with(@Nonnull ConfigurationParameters 
configuration) {
         this.configuration = checkNotNull(configuration);
         return this;
     }
 
+    public SecurityProviderBuilder with(@Nonnull SecurityConfiguration sc, 
@Nonnull Class<? extends SecurityConfiguration> cls) {
+        this.sc = sc;
+        this.cls = cls;
+        return this;
+    }
+
     public SecurityProvider build() {
+        SecurityProvider sp;
         if (configuration != null) {
-            return new SecurityProviderImpl(configuration);
+            sp = new SecurityProviderImpl(configuration);
         } else {
-            return new SecurityProviderImpl();
+            sp = new SecurityProviderImpl();
         }
+
+        if (sc != null && cls != null) {
+            Object cc = sp.getConfiguration(cls);
+            if (!(cc instanceof CompositeConfiguration)) {
+                throw new IllegalStateException();
+            } else {
+                if (sc instanceof ConfigurationBase) {
+                    ((ConfigurationBase) sc).setSecurityProvider(sp);
+                }
+
+                CompositeConfiguration composite = (CompositeConfiguration) cc;
+                SecurityConfiguration defConfig = composite.getDefaultConfig();
+
+                composite.addConfiguration(sc);
+                composite.addConfiguration(defConfig);
+            }
+        }
+
+        return sp;
     }
 }


Reply via email to