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 2014/02/28 12:02:56 UTC

svn commit: r1572917 - in /jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade: RepositoryUpgrade.java security/GroupEditor.java security/GroupEditorProvider.java

Author: angela
Date: Fri Feb 28 11:02:56 2014
New Revision: 1572917

URL: http://svn.apache.org/r1572917
Log:
OAK-1480 : Wrong default value for group-paths in GroupEditor

Modified:
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java
    jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditorProvider.java

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java?rev=1572917&r1=1572916&r2=1572917&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java Fri Feb 28 11:02:56 2014
@@ -22,7 +22,6 @@ import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-
 import javax.jcr.NamespaceException;
 import javax.jcr.NamespaceRegistry;
 import javax.jcr.RepositoryException;
@@ -32,11 +31,13 @@ import javax.jcr.version.OnParentVersion
 import org.apache.jackrabbit.core.NamespaceRegistryImpl;
 import org.apache.jackrabbit.core.RepositoryContext;
 import org.apache.jackrabbit.core.config.RepositoryConfig;
+import org.apache.jackrabbit.core.config.UserManagerConfig;
 import org.apache.jackrabbit.core.fs.FileSystem;
 import org.apache.jackrabbit.core.fs.FileSystemException;
 import org.apache.jackrabbit.core.nodetype.NodeTypeRegistry;
 import org.apache.jackrabbit.core.persistence.PersistenceManager;
 import org.apache.jackrabbit.core.security.authorization.PrivilegeRegistry;
+import org.apache.jackrabbit.core.security.user.UserManagerImpl;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.index.CompositeIndexEditorProvider;
@@ -53,6 +54,7 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.commit.CompositeHook;
 import org.apache.jackrabbit.oak.spi.commit.EditorHook;
 import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBits;
+import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
 import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -205,9 +207,9 @@ public class RepositoryUpgrade {
      * @throws RepositoryException if the copy operation fails
      */
     public void copy() throws RepositoryException {
+        RepositoryConfig config = source.getRepositoryConfig();
         logger.info(
-                "Copying repository content from {} to Oak",
-                source.getRepositoryConfig().getHomeDir());
+                "Copying repository content from {} to Oak", config.getHomeDir());
         try {
             NodeBuilder builder = target.getRoot().builder();
 
@@ -220,9 +222,16 @@ public class RepositoryUpgrade {
             copyVersionStore(builder, idxToPrefix);
             copyWorkspaces(builder, idxToPrefix);
 
+            String groupsPath;
+            UserManagerConfig userConfig = config.getSecurityConfig().getSecurityManagerConfig().getUserManagerConfig();
+            if (userConfig != null) {
+                groupsPath = userConfig.getParameters().getProperty(UserManagerImpl.PARAM_GROUPS_PATH, UserConstants.DEFAULT_GROUP_PATH);
+            } else {
+                groupsPath = UserConstants.DEFAULT_GROUP_PATH;
+            }
             // TODO: default hooks?
             CommitHook hook = new CompositeHook(
-                    new EditorHook(new GroupEditorProvider()),
+                    new EditorHook(new GroupEditorProvider(groupsPath)),
                     new EditorHook(new CompositeEditorProvider(
                             new TypeEditorProvider(),
                             new IndexUpdateProvider(new CompositeIndexEditorProvider(

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java?rev=1572917&r1=1572916&r2=1572917&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditor.java Fri Feb 28 11:02:56 2014
@@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.upgrad
 
 import java.util.Set;
 import java.util.TreeSet;
+import javax.annotation.Nonnull;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
@@ -28,23 +29,18 @@ import org.apache.jackrabbit.oak.spi.com
 import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
+import org.apache.jackrabbit.util.Text;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
 import static org.apache.jackrabbit.oak.api.CommitFailedException.CONSTRAINT;
 
-/**
- */
 class GroupEditor extends DefaultEditor {
 
-    /**
-     * default logger
-     */
     private static final Logger log = LoggerFactory.getLogger(GroupEditor.class);
 
-    // todo: OAK-1480 wrong default. must be retrieved from configuration.
-    private final static String[] ROOTS = {"home", "groups"};
+    private final String[] groupsRoot;
 
     private State state;
 
@@ -52,13 +48,14 @@ class GroupEditor extends DefaultEditor 
 
     private final MembershipWriter writer = new MembershipWriter();
 
-    GroupEditor(NodeBuilder builder) {
+    GroupEditor(@Nonnull NodeBuilder builder, @Nonnull String groupsPath) {
         this.state = new State(builder);
+        this.groupsRoot = Text.explode(groupsPath, '/', false);
         // writer.setMembershipSizeThreshold(10); // uncomment to test different split sizes
     }
 
     private boolean descend(String name) {
-        if (state.depth < ROOTS.length && !name.equals(ROOTS[state.depth])) {
+        if (state.depth < groupsRoot.length && !name.equals(groupsRoot[state.depth])) {
             return false;
         }
         state = state.push(name);

Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditorProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditorProvider.java?rev=1572917&r1=1572916&r2=1572917&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditorProvider.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/security/GroupEditorProvider.java Fri Feb 28 11:02:56 2014
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.oak.upgrade.security;
 
+import javax.annotation.Nonnull;
+
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.Editor;
 import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
@@ -26,10 +28,17 @@ import org.apache.jackrabbit.oak.spi.sta
  */
 public class GroupEditorProvider implements EditorProvider {
 
+    private final String groupsPath;
+
+    public GroupEditorProvider(@Nonnull String groupsPath) {
+        this.groupsPath = groupsPath;
+
+    }
+
     @Override
     public Editor getRootEditor(
             NodeState before, NodeState after,
             NodeBuilder builder, CommitInfo info) {
-        return new GroupEditor(builder);
+        return new GroupEditor(builder, groupsPath);
     }
 }
\ No newline at end of file