You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2012/10/04 10:58:52 UTC

svn commit: r1393961 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java

Author: angela
Date: Thu Oct  4 08:58:51 2012
New Revision: 1393961

URL: http://svn.apache.org/viewvc?rev=1393961&view=rev
Log:
 OAK-91 - Implement Authentication Support (WIP)

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java?rev=1393961&r1=1393960&r2=1393961&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ContentRepositoryImpl.java Thu Oct  4 08:58:51 2012
@@ -28,8 +28,6 @@ import org.apache.jackrabbit.oak.api.Con
 import org.apache.jackrabbit.oak.kernel.KernelNodeStore;
 import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandlerProvider;
 import org.apache.jackrabbit.oak.security.SecurityProviderImpl;
-import org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl;
-import org.apache.jackrabbit.oak.security.authorization.AccessControlProviderImpl;
 import org.apache.jackrabbit.oak.spi.commit.CommitHook;
 import org.apache.jackrabbit.oak.spi.commit.CompositeHook;
 import org.apache.jackrabbit.oak.spi.commit.ConflictHandlerProvider;
@@ -60,8 +58,7 @@ public class ContentRepositoryImpl imple
     private static final ConflictHandlerProvider DEFAULT_CONFLICT_HANDLER_PROVIDER =
             new AnnotatingConflictHandlerProvider();
 
-    private final LoginContextProvider loginContextProvider;
-    private final AccessControlProvider accProvider;
+    private final SecurityProvider securityProvider;
     private final QueryIndexProvider indexProvider;
     private final KernelNodeStore nodeStore;
 
@@ -75,8 +72,7 @@ public class ContentRepositoryImpl imple
     }
 
     public ContentRepositoryImpl(CommitHook hook) {
-        this(new MicroKernelImpl(), new SecurityProviderImpl(),
-                new CompositeQueryIndexProvider(), hook);
+        this(new MicroKernelImpl(), new CompositeQueryIndexProvider(), hook, null);
     }
 
     /**
@@ -95,9 +91,9 @@ public class ContentRepositoryImpl imple
     public ContentRepositoryImpl(
             MicroKernel microKernel, QueryIndexProvider indexProvider,
             ValidatorProvider validatorProvider) {
-        this(microKernel, new SecurityProviderImpl(), indexProvider,
-                new ValidatingHook(validatorProvider != null
-                    ? validatorProvider : DefaultValidatorProvider.INSTANCE));
+        this(microKernel, indexProvider,
+                new ValidatingHook(validatorProvider != null ? validatorProvider : DefaultValidatorProvider.INSTANCE),
+                null);
     }
 
     public ContentRepositoryImpl(
@@ -109,21 +105,6 @@ public class ContentRepositoryImpl imple
      * Creates an Oak repository instance based on the given, already
      * initialized components.
      *
-     * @param microKernel underlying kernel instance
-     * @param securityProvider security provider
-     * @param indexProvider index provider
-     * @param commitHook the commit hook
-     */
-    public ContentRepositoryImpl(
-            MicroKernel microKernel, SecurityProvider securityProvider,
-            QueryIndexProvider indexProvider, CommitHook commitHook) {
-        this(microKernel, indexProvider, commitHook, securityProvider);
-    }
-
-    /**
-     * Creates an Oak repository instance based on the given, already
-     * initialized components.
-     *
      * @param microKernel   underlying kernel instance
      * @param indexProvider index provider
      * @param commitHook    the commit hook
@@ -141,14 +122,10 @@ public class ContentRepositoryImpl imple
         this.indexProvider = indexProvider != null ? indexProvider
                 : new CompositeQueryIndexProvider();
 
-        if (securityProvider != null) {
-            this.loginContextProvider = securityProvider.getLoginContextProvider();
-            this.accProvider = securityProvider.getAccessControlProvider();
-        } else {
-            // use default implementation
-            this.loginContextProvider = new LoginContextProviderImpl();
-            this.accProvider = new AccessControlProviderImpl();
-        }
+        // TODO: in order not to having failing tests we use SecurityProviderImpl as default
+        //       - review if passing a security provider should be mandatory
+        //       - review if another default (not enforcing any security constraint) was more appropriate.
+        this.securityProvider = (securityProvider == null) ? new SecurityProviderImpl() : securityProvider;
     }
 
     @Nonnull
@@ -164,11 +141,12 @@ public class ContentRepositoryImpl imple
             throw new NoSuchWorkspaceException(workspaceName);
         }
 
-        OakLoginContext loginContext =
-                loginContextProvider.getLoginContext(credentials, workspaceName);
+        LoginContextProvider lcProvider = securityProvider.getLoginContextProvider();
+        OakLoginContext loginContext = lcProvider.getLoginContext(credentials, workspaceName);
         loginContext.login();
 
-        return new ContentSessionImpl(loginContext, accProvider, workspaceName,
+        AccessControlProvider acProvider = securityProvider.getAccessControlProvider();
+        return new ContentSessionImpl(loginContext, acProvider, workspaceName,
                 nodeStore, DEFAULT_CONFLICT_HANDLER_PROVIDER, indexProvider);
     }
 }