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 2017/03/14 11:17:11 UTC

svn commit: r1786879 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/ oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ ...

Author: angela
Date: Tue Mar 14 11:17:11 2017
New Revision: 1786879

URL: http://svn.apache.org/viewvc?rev=1786879&view=rev
Log:
OAK-5926 : Readability of membership code

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipBaseTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserValidatorTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java
    jackrabbit/oak/trunk/oak-exercise/src/test/java/org/apache/jackrabbit/oak/security/user/L8_MembershipTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java Tue Mar 14 11:17:11 2017
@@ -40,15 +40,19 @@ abstract class AuthorizableBaseProvider
     final Root root;
     final IdentifierManager identifierManager;
 
+    private final boolean usercaseMappedProfile;
+
     AuthorizableBaseProvider(@Nonnull Root root, @Nonnull ConfigurationParameters config) {
         this.root = checkNotNull(root);
         this.config = checkNotNull(config);
-        this.identifierManager = new IdentifierManager(root);
+
+        identifierManager = new IdentifierManager(root);
+        usercaseMappedProfile = config.getConfigValue(PARAM_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE, DEFAULT_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE);
     }
 
     @CheckForNull
     Tree getByID(@Nonnull String authorizableId, @Nonnull AuthorizableType authorizableType) {
-        return getByContentID(getContentID(authorizableId, config.getConfigValue(PARAM_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE, DEFAULT_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE)), authorizableType);
+        return getByContentID(getContentID(authorizableId), authorizableType);
     }
 
     @CheckForNull
@@ -62,9 +66,9 @@ abstract class AuthorizableBaseProvider
     }
 
     @CheckForNull
-    Tree getByPath(@Nonnull String authorizableOakPath) {
+    Tree getByPath(@Nonnull String authorizableOakPath, @Nonnull AuthorizableType type) {
         Tree tree = root.getTree(authorizableOakPath);
-        if (UserUtil.isType(tree, AuthorizableType.AUTHORIZABLE)) {
+        if (UserUtil.isType(tree, type)) {
             return tree;
         } else {
             return null;
@@ -77,7 +81,7 @@ abstract class AuthorizableBaseProvider
     }
 
     @Nonnull
-    static String getContentID(@Nonnull String authorizableId, boolean usercaseMappedProfile) {
+    String getContentID(@Nonnull String authorizableId) {
         String s = authorizableId.toLowerCase();
         if (usercaseMappedProfile) {
             s = java.text.Normalizer.normalize(s, java.text.Normalizer.Form.NFKC);

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/GroupImpl.java Tue Mar 14 11:17:11 2017
@@ -20,7 +20,6 @@ import java.security.Principal;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
-
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.jcr.RepositoryException;
@@ -29,7 +28,6 @@ import javax.jcr.nodetype.ConstraintViol
 import com.google.common.base.Predicate;
 import com.google.common.base.Strings;
 import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -189,7 +187,7 @@ class GroupImpl extends AuthorizableImpl
                     }
             );
         } else {
-            Iterator<String> oakPaths = getMembershipProvider().getMembers(getTree(), AuthorizableType.AUTHORIZABLE, includeInherited);
+            Iterator<String> oakPaths = getMembershipProvider().getMembers(getTree(), includeInherited);
             if (oakPaths.hasNext()) {
                 AuthorizableIterator iterator = AuthorizableIterator.create(oakPaths, userMgr, AuthorizableType.AUTHORIZABLE);
                 return new RangeIteratorAdapter(iterator, iterator.getSize());
@@ -244,19 +242,19 @@ class GroupImpl extends AuthorizableImpl
      * @throws javax.jcr.RepositoryException If another error occurs.
      */
     private Set<String> updateMembers(boolean isRemove, @Nonnull String... memberIds) throws RepositoryException {
-        Set<String> idSet = Sets.newLinkedHashSet(Lists.newArrayList(memberIds));
+        Set<String> failedIds = Sets.newHashSet(memberIds);
         int importBehavior = UserUtil.getImportBehavior(getUserManager().getConfig());
 
         if (isEveryone()) {
             String msg = "Attempt to add or remove from everyone group.";
             log.debug(msg);
-            return idSet;
+            return failedIds;
         }
 
-        Map<String, String> updateMap = Maps.newHashMapWithExpectedSize(idSet.size());
-        Iterator<String> idIterator = idSet.iterator();
-        while (idIterator.hasNext()) {
-            String memberId = idIterator.next();
+        // calculate the contentID for each memberId and remember ids that cannot be processed
+        Map<String, String> updateMap = Maps.newHashMapWithExpectedSize(memberIds.length);
+        MembershipProvider mp = getMembershipProvider();
+        for (String memberId : memberIds) {
             if (Strings.isNullOrEmpty(memberId)) {
                 throw new ConstraintViolationException("MemberId must not be null or empty.");
             }
@@ -282,24 +280,25 @@ class GroupImpl extends AuthorizableImpl
                 }
             }
 
-            idIterator.remove();
-            updateMap.put(AuthorizableBaseProvider.getContentID(memberId, getUserManager().getConfig().getConfigValue(PARAM_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE, DEFAULT_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE)), memberId);
+            // memberId can be processed -> remove from failedIds and generate contentID
+            failedIds.remove(memberId);
+            updateMap.put(mp.getContentID(memberId), memberId);
         }
 
         Set<String> processedIds = Sets.newHashSet(updateMap.values());
         if (!updateMap.isEmpty()) {
-            Set<String> failedIds;
+            Set<String> result;
             if (isRemove) {
-                failedIds = getMembershipProvider().removeMembers(getTree(), updateMap);
+                result = mp.removeMembers(getTree(), updateMap);
             } else {
-                failedIds = getMembershipProvider().addMembers(getTree(), updateMap);
+                result = mp.addMembers(getTree(), updateMap);
             }
-            idSet.addAll(failedIds);
-            processedIds.removeAll(failedIds);
+            failedIds.addAll(result);
+            processedIds.removeAll(result);
         }
 
-        getUserManager().onGroupUpdate(this, isRemove, false, processedIds, idSet);
-        return idSet;
+        getUserManager().onGroupUpdate(this, isRemove, false, processedIds, failedIds);
+        return failedIds;
     }
 
     /**

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipProvider.java Tue Mar 14 11:17:11 2017
@@ -35,7 +35,6 @@ import org.apache.jackrabbit.oak.api.Typ
 import org.apache.jackrabbit.oak.spi.query.PropertyValues;
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType;
-import org.apache.jackrabbit.oak.spi.security.user.util.UserUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,7 +55,7 @@ import org.slf4j.LoggerFactory;
  * Note that the writing of the members is done in {@link MembershipWriter} so that the logic can be re-used by the
  * migration code.
  *
- * The current implementation uses a fixed threshold value of {@link #getMembershipSizeThreshold()} before creating
+ * The current implementation uses a fixed threshold value of {@link MembershipWriter#DEFAULT_MEMBERSHIP_THRESHHOLD} before creating
  * {@link #NT_REP_MEMBER_REFERENCES} sub nodes.
  *
  * Example Group with few members (irrelevant properties excluded):
@@ -120,14 +119,6 @@ class MembershipProvider extends Authori
     }
 
     /**
-     * Returns the size of the membership property threshold. This is currently only useful for testing.
-     * @return the size of the membership property threshold.
-     */
-    int getMembershipSizeThreshold() {
-        return writer.getMembershipSizeThreshold();
-    }
-
-    /**
      * Sets the size of the membership property threshold. This is currently only useful for testing.
      * @param membershipSizeThreshold the size of the membership property threshold
      */
@@ -166,19 +157,16 @@ class MembershipProvider extends Authori
             @Override
             protected String internalGetNext(@Nonnull String propPath) {
                 String next = null;
-                int index = propPath.indexOf('/' + REP_MEMBERS_LIST);
-                if (index < 0) {
-                    index = propPath.indexOf('/' + REP_MEMBERS);
-                }
-                if (index > 0) {
-                    String groupPath = propPath.substring(0, index);
+
+                String groupPath = getGroupPath(propPath);
+                if (groupPath != null) {
                     if (processedPaths.add(groupPath)) {
                         // we didn't see this path before, so continue
                         next = groupPath;
                         if (includeInherited) {
-                            // inject a parent iterator of the inherited memberships is needed
-                            Tree group = getByPath(groupPath);
-                            if (UserUtil.isType(group, AuthorizableType.GROUP)) {
+                            // inject a parent iterator if inherited memberships is requested
+                            Tree group = getByPath(groupPath, AuthorizableType.GROUP);
+                            if (group != null) {
                                 remember(group);
                             }
                         }
@@ -194,6 +182,20 @@ class MembershipProvider extends Authori
             protected Iterator<String> getNextIterator(@Nonnull Tree groupTree) {
                 return getMembership(groupTree, true, processedPaths);
             }
+
+            @CheckForNull
+            private String getGroupPath(@Nonnull String membersPropPath) {
+                int index = membersPropPath.indexOf('/' + REP_MEMBERS_LIST);
+                if (index < 0) {
+                    index = membersPropPath.indexOf('/' + REP_MEMBERS);
+                }
+
+                if (index > 0) {
+                    return membersPropPath.substring(0, index);
+                } else {
+                    return null;
+                }
+            }
         };
     }
 
@@ -213,27 +215,26 @@ class MembershipProvider extends Authori
      * Returns an iterator over all member paths of the given group.
      *
      * @param groupTree the group tree
-     * @param authorizableType type of authorizables to filter.
      * @param includeInherited {@code true} to include inherited members
      * @return an iterator over all member paths
      */
     @Nonnull
-    Iterator<String> getMembers(@Nonnull Tree groupTree, @Nonnull AuthorizableType authorizableType, boolean includeInherited) {
-        return getMembers(groupTree, authorizableType, includeInherited, new HashSet<String>());
+    Iterator<String> getMembers(@Nonnull Tree groupTree, boolean includeInherited) {
+        return getMembers(groupTree, includeInherited, new HashSet<String>());
     }
 
     /**
      * Returns an iterator over all member paths of the given group.
      *
      * @param groupTree the group tree
-     * @param authorizableType type of authorizables to filter.
      * @param includeInherited {@code true} to include inherited members
      * @param processedRefs helper set that contains the references that are already processed.
      * @return an iterator over all member paths
      */
     @Nonnull
-    private Iterator<String> getMembers(@Nonnull final Tree groupTree, @Nonnull final AuthorizableType authorizableType,
-                                        final boolean includeInherited, @Nonnull final Set<String> processedRefs) {
+    private Iterator<String> getMembers(@Nonnull final Tree groupTree,
+                                        final boolean includeInherited,
+                                        @Nonnull final Set<String> processedRefs) {
         MemberReferenceIterator mrit = new MemberReferenceIterator(groupTree) {
             @Override
             protected boolean hasProcessedReference(@Nonnull String value) {
@@ -247,16 +248,11 @@ class MembershipProvider extends Authori
             protected String internalGetNext(@Nonnull String value) {
                 String next = identifierManager.getPath(PropertyValues.newWeakReference(value));
 
-                // filter by authorizable type, and/or get inherited members
-                if (next != null && (includeInherited || authorizableType != AuthorizableType.AUTHORIZABLE)) {
-                    Tree auth = getByPath(next);
-                    AuthorizableType type = (auth == null) ? null : UserUtil.getType(auth);
-
-                    if (includeInherited && type == AuthorizableType.GROUP) {
-                        remember(auth);
-                    }
-                    if (authorizableType != AuthorizableType.AUTHORIZABLE && type != authorizableType) {
-                        next = null;
+                // eventually remember groups for including inherited members
+                if (next != null && includeInherited) {
+                    Tree gr = getByPath(next, AuthorizableType.GROUP);
+                    if (gr != null) {
+                        remember(gr);
                     }
                 }
                 return next;
@@ -265,7 +261,7 @@ class MembershipProvider extends Authori
             @Nonnull
             @Override
             protected Iterator<String> getNextIterator(@Nonnull Tree groupTree) {
-                return getMembers(groupTree, authorizableType, true, processedRefs);
+                return getMembers(groupTree, true, processedRefs);
             }
         };
     }
@@ -283,7 +279,7 @@ class MembershipProvider extends Authori
             return false;
         }
         if (pendingChanges(groupTree)) {
-            return Iterators.contains(getMembers(groupTree, AuthorizableType.AUTHORIZABLE, true), authorizableTree.getPath());
+            return Iterators.contains(getMembers(groupTree, true), authorizableTree.getPath());
         } else {
             return hasMembership(authorizableTree, groupTree.getPath());
         }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/MembershipWriter.java Tue Mar 14 11:17:11 2017
@@ -43,14 +43,12 @@ import static org.apache.jackrabbit.oak.
  */
 public class MembershipWriter {
 
+    static final int DEFAULT_MEMBERSHIP_THRESHHOLD = 100;
+
     /**
      * size of the membership threshold after which a new overflow node is created.
      */
-    private int membershipSizeThreshold = 100;
-
-    public int getMembershipSizeThreshold() {
-        return membershipSizeThreshold;
-    }
+    private int membershipSizeThreshold = DEFAULT_MEMBERSHIP_THRESHHOLD;
 
     public void setMembershipSizeThreshold(int membershipSizeThreshold) {
         this.membershipSizeThreshold = membershipSizeThreshold;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java Tue Mar 14 11:17:11 2017
@@ -213,7 +213,7 @@ class UserProvider extends AuthorizableB
 
     @CheckForNull
     Tree getAuthorizableByPath(@Nonnull String authorizableOakPath) {
-        return getByPath(authorizableOakPath);
+        return getByPath(authorizableOakPath, AuthorizableType.AUTHORIZABLE);
     }
 
     @CheckForNull
@@ -270,7 +270,7 @@ class UserProvider extends AuthorizableB
         String userId = Strings.nullToEmpty(root.getContentSession().getAuthInfo().getUserID());
         Tree authorizableNode = TreeUtil.addChild(folder, nodeName, ntName, typeRoot, userId);
         authorizableNode.setProperty(REP_AUTHORIZABLE_ID, authorizableId);
-        authorizableNode.setProperty(JcrConstants.JCR_UUID, getContentID(authorizableId, config.getConfigValue(PARAM_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE, DEFAULT_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE)));
+        authorizableNode.setProperty(JcrConstants.JCR_UUID, getContentID(authorizableId));
 
         return authorizableNode;
     }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserValidator.java Tue Mar 14 11:17:11 2017
@@ -225,7 +225,7 @@ class UserValidator extends DefaultValid
 
     private boolean isValidUUID(@Nonnull Tree parent, @Nonnull String uuid) {
         String id = UserUtil.getAuthorizableId(parent);
-        return id != null && uuid.equals(UserProvider.getContentID(id, provider.getConfig().getConfigValue(PARAM_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE, DEFAULT_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE)));
+        return id != null && uuid.equals(provider.getMembershipProvider().getContentID(id));
     }
 
     private static boolean isUser(@Nullable Tree tree) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/user/action/DefaultAuthorizableActionProvider.java Tue Mar 14 11:17:11 2017
@@ -94,7 +94,7 @@ public class DefaultAuthorizableActionPr
     @Nonnull
     @Override
     public List<? extends AuthorizableAction> getAuthorizableActions(@Nonnull SecurityProvider securityProvider) {
-        List<AuthorizableAction> actions = Lists.newArrayList();
+        List<AuthorizableAction> actions = Lists.newArrayListWithExpectedSize(enabledActions.length);
         for (String className : enabledActions) {
             try {
                 Class<? extends AuthorizableAction> cl = SUPPORTED_ACTIONS.get(className);

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AddMembersByIdBestEffortTest.java Tue Mar 14 11:17:11 2017
@@ -29,6 +29,7 @@ import org.apache.jackrabbit.oak.api.Com
 import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
 import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
 import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
 import org.apache.jackrabbit.oak.spi.xml.ImportBehavior;
 import org.apache.jackrabbit.oak.spi.xml.ProtectedItemImporter;
 import org.junit.Test;
@@ -126,7 +127,8 @@ public class AddMembersByIdBestEffortTes
 
     @Test
     public void testAddByContentID() throws Exception {
-        Set<String> failed = testGroup.addMembers(AuthorizableBaseProvider.getContentID(getTestUser().getID(), false));
+        AuthorizableBaseProvider provider = new UserProvider(root, ConfigurationParameters.of(getUserConfiguration().getParameters(), ConfigurationParameters.of(UserConstants.PARAM_ENABLE_RFC7613_USERCASE_MAPPED_PROFILE, false)));
+        Set<String> failed = testGroup.addMembers(provider.getContentID(getTestUser().getID()));
         assertTrue(failed.isEmpty());
 
         assertFalse(testGroup.isMember(getTestUser()));

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipBaseTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipBaseTest.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipBaseTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipBaseTest.java Tue Mar 14 11:17:11 2017
@@ -127,7 +127,7 @@ public abstract class MembershipBaseTest
 
     @Nonnull
     String getContentID(@Nonnull String memberId) {
-        return userMgr.getMembershipProvider().getContentID(memberId, false);
+        return userMgr.getMembershipProvider().getContentID(memberId);
     }
 
     @CheckForNull

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipProviderTest.java Tue Mar 14 11:17:11 2017
@@ -28,7 +28,6 @@ import com.google.common.collect.Sets;
 import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType;
 import org.apache.jackrabbit.oak.util.NodeUtil;
 import org.apache.jackrabbit.oak.util.TreeUtil;
 import org.junit.Before;
@@ -300,8 +299,8 @@ public class MembershipProviderTest exte
         member.remove();
         root.commit();
 
-        assertFalse(mp.getMembers(getTree(g), AuthorizableType.AUTHORIZABLE, false).hasNext());
-        assertFalse(mp.getMembers(getTree(g), AuthorizableType.AUTHORIZABLE, true).hasNext());
+        assertFalse(mp.getMembers(getTree(g), false).hasNext());
+        assertFalse(mp.getMembers(getTree(g), true).hasNext());
     }
 
     @Test
@@ -312,7 +311,7 @@ public class MembershipProviderTest exte
         member.addMember(createUser());
         root.commit();
 
-        Iterator<String> res = mp.getMembers(getTree(g), AuthorizableType.AUTHORIZABLE, true);
+        Iterator<String> res = mp.getMembers(getTree(g), true);
         assertEquals(2, Iterators.size(res));
     }
 
@@ -327,7 +326,7 @@ public class MembershipProviderTest exte
         g.addMember(user);
         root.commit();
 
-        Iterator<String> res = mp.getMembers(getTree(g), AuthorizableType.AUTHORIZABLE, true);
+        Iterator<String> res = mp.getMembers(getTree(g), true);
         assertEquals(2, Iterators.size(res));
     }
 
@@ -339,7 +338,7 @@ public class MembershipProviderTest exte
         member.addMember(createUser());
         root.commit();
 
-        Iterator<String> res = mp.getMembers(getTree(g), AuthorizableType.AUTHORIZABLE, false);
+        Iterator<String> res = mp.getMembers(getTree(g), false);
         assertEquals(1, Iterators.size(res));
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserValidatorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserValidatorTest.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserValidatorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserValidatorTest.java Tue Mar 14 11:17:11 2017
@@ -270,6 +270,7 @@ public class UserValidatorTest extends A
         invalid.add(userPath);
         invalid.add(userPath + "/folder");
 
+        UserProvider up = new UserProvider(root, getUserConfiguration().getParameters());
         for (String path : invalid) {
             try {
                 Tree parent = root.getTree(path);
@@ -287,7 +288,7 @@ public class UserValidatorTest extends A
                 }
                 Tree userTree = parent.addChild("testUser");
                 userTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_USER, Type.NAME);
-                userTree.setProperty(JcrConstants.JCR_UUID, UserProvider.getContentID("testUser", false));
+                userTree.setProperty(JcrConstants.JCR_UUID, up.getContentID("testUser"));
                 userTree.setProperty(REP_PRINCIPAL_NAME, "testUser");
                 root.commit();
                 fail("Invalid hierarchy should be detected");

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/action/GroupActionTest.java Tue Mar 14 11:17:11 2017
@@ -153,7 +153,7 @@ public class GroupActionTest extends Abs
 
         testGroup.addMembers(nonExisting.toArray(new String[nonExisting.size()]));
         assertFalse(groupAction.memberIds.iterator().hasNext());
-        assertTrue(Iterables.elementsEqual(nonExisting, groupAction.failedIds));
+        assertEquals(nonExisting, groupAction.failedIds);
     }
 
     @Test
@@ -179,7 +179,7 @@ public class GroupActionTest extends Abs
 
         testGroup.removeMembers(nonExisting.toArray(new String[nonExisting.size()]));
         assertFalse(groupAction.memberIds.iterator().hasNext());
-        assertTrue(Iterables.elementsEqual(nonExisting, groupAction.failedIds));
+        assertEquals(nonExisting, groupAction.failedIds);
     }
 
     class TestGroupAction extends AbstractGroupAction {

Modified: jackrabbit/oak/trunk/oak-exercise/src/test/java/org/apache/jackrabbit/oak/security/user/L8_MembershipTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-exercise/src/test/java/org/apache/jackrabbit/oak/security/user/L8_MembershipTest.java?rev=1786879&r1=1786878&r2=1786879&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-exercise/src/test/java/org/apache/jackrabbit/oak/security/user/L8_MembershipTest.java (original)
+++ jackrabbit/oak/trunk/oak-exercise/src/test/java/org/apache/jackrabbit/oak/security/user/L8_MembershipTest.java Tue Mar 14 11:17:11 2017
@@ -263,7 +263,7 @@ public class L8_MembershipTest extends A
 
     @Test
     public void testMembersContentStructure() throws RepositoryException, CommitFailedException {
-        int size = new MembershipWriter().getMembershipSizeThreshold() * 5;
+        int size = MembershipWriter.DEFAULT_MEMBERSHIP_THRESHHOLD * 5;
 
         List<String> memberUuids = new ArrayList<String>();
         for (int i = 0; i < size; i++) {