Author: stillalex Date: Thu Oct 11 09:17:51 2018 New Revision: 1843537 URL: http://svn.apache.org/viewvc?rev=1843537&view=rev Log: OAK-7820 Make internal group principal impl classes static
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java?rev=1843537&r1=1843536&r2=1843537&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AdminPrincipalImpl.java Thu Oct 11 09:17:51 2018 @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.security.user; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.namepath.PathMapper; +import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.spi.security.principal.AdminPrincipal; /** @@ -25,7 +25,7 @@ import org.apache.jackrabbit.oak.spi.sec */ class AdminPrincipalImpl extends TreeBasedPrincipal implements AdminPrincipal { - AdminPrincipalImpl(String principalName, Tree tree, PathMapper pathMapper) { + AdminPrincipalImpl(String principalName, Tree tree, NamePathMapper pathMapper) { super(principalName, tree, pathMapper); } } \ No newline at end of file Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java?rev=1843537&r1=1843536&r2=1843537&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/SystemUserPrincipalImpl.java Thu Oct 11 09:17:51 2018 @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.security.user; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.namepath.PathMapper; +import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.spi.security.principal.SystemUserPrincipal; import org.jetbrains.annotations.NotNull; @@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull */ final class SystemUserPrincipalImpl extends TreeBasedPrincipal implements SystemUserPrincipal { - SystemUserPrincipalImpl(@NotNull String principalName, @NotNull Tree tree, @NotNull PathMapper pathMapper) { + SystemUserPrincipalImpl(@NotNull String principalName, @NotNull Tree tree, @NotNull NamePathMapper pathMapper) { super(principalName, tree, pathMapper); } } Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java?rev=1843537&r1=1843536&r2=1843537&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/TreeBasedPrincipal.java Thu Oct 11 09:17:51 2018 @@ -18,7 +18,7 @@ package org.apache.jackrabbit.oak.securi import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.namepath.PathMapper; +import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl; /** @@ -27,13 +27,13 @@ import org.apache.jackrabbit.oak.spi.sec class TreeBasedPrincipal extends PrincipalImpl implements ItemBasedPrincipal { private final String path; - private final PathMapper pathMapper; + private final NamePathMapper pathMapper; - TreeBasedPrincipal(String principalName, Tree tree, PathMapper pathMapper) { + TreeBasedPrincipal(String principalName, Tree tree, NamePathMapper pathMapper) { this(principalName, tree.getPath(), pathMapper); } - TreeBasedPrincipal(String principalName, String oakPath, PathMapper pathMapper) { + TreeBasedPrincipal(String principalName, String oakPath, NamePathMapper pathMapper) { super(principalName); this.pathMapper = pathMapper; this.path = oakPath; @@ -43,6 +43,10 @@ class TreeBasedPrincipal extends Princip return path; } + NamePathMapper getNamePathMapper() { + return pathMapper; + } + //-------------------------------------------------< ItemBasedPrincipal >--- @Override public String getPath() { Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java?rev=1843537&r1=1843536&r2=1843537&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java Thu Oct 11 09:17:51 2018 @@ -187,16 +187,15 @@ class UserPrincipalProvider implements P @Nullable private Principal createPrincipal(@Nullable Tree authorizableTree) { - Principal principal = null; if (authorizableTree != null) { AuthorizableType type = UserUtil.getType(authorizableTree); if (AuthorizableType.GROUP == type) { - principal = createGroupPrincipal(authorizableTree); + return createGroupPrincipal(authorizableTree); } else if (AuthorizableType.USER == type) { - principal = createUserPrincipal(UserUtil.getAuthorizableId(authorizableTree, type), authorizableTree); + return createUserPrincipal(UserUtil.getAuthorizableId(authorizableTree, type), authorizableTree); } } - return principal; + return null; } @Nullable @@ -220,7 +219,7 @@ class UserPrincipalProvider implements P if (principalName == null) { return null; } - return new GroupPrincipalImpl(principalName, groupTree); + return new GroupPrincipalImpl(principalName, groupTree.getPath(), namePathMapper, root, config); } @Nullable @@ -323,7 +322,7 @@ class UserPrincipalProvider implements P Set<Principal> groups = new HashSet<>(); for (String s : Text.explode(str, ',')) { final String name = Text.unescape(s); - groups.add(new CachedGroupPrincipal(name)); + groups.add(new CachedGroupPrincipal(name, namePathMapper, root, config)); } return groups; } else { @@ -393,22 +392,23 @@ class UserPrincipalProvider implements P // Group Principal implementations that retrieve member information on demand //-------------------------------------------------------------------------- - private abstract class BaseGroupPrincipal extends AbstractGroupPrincipal { + private static abstract class BaseGroupPrincipal extends AbstractGroupPrincipal { + private final Root root; + private final UserConfiguration config; private UserManager userManager; - BaseGroupPrincipal(@NotNull String principalName, @NotNull Tree groupTree) { - super(principalName, groupTree, namePathMapper); - } - - BaseGroupPrincipal(@NotNull String principalName, @NotNull String groupPath) { + BaseGroupPrincipal(@NotNull String principalName, @NotNull String groupPath, + @NotNull NamePathMapper namePathMapper, @NotNull Root root, @NotNull UserConfiguration config) { super(principalName, groupPath, namePathMapper); + this.root = root; + this.config = config; } @Override UserManager getUserManager() { if (userManager == null) { - userManager = config.getUserManager(root, namePathMapper); + userManager = config.getUserManager(root, getNamePathMapper()); } return userManager; } @@ -439,12 +439,13 @@ class UserPrincipalProvider implements P * Implementation of {@link AbstractGroupPrincipal} that reads the underlying * authorizable group lazily in case the group membership must be retrieved. */ - private final class GroupPrincipalImpl extends BaseGroupPrincipal { + private static final class GroupPrincipalImpl extends BaseGroupPrincipal { private org.apache.jackrabbit.api.security.user.Group group; - GroupPrincipalImpl(@NotNull String principalName, @NotNull Tree groupTree) { - super(principalName, groupTree); + GroupPrincipalImpl(@NotNull String principalName, @NotNull String groupPath, + @NotNull NamePathMapper namePathMapper, @NotNull Root root, @NotNull UserConfiguration config) { + super(principalName, groupPath, namePathMapper, root, config); } @Override @@ -460,18 +461,19 @@ class UserPrincipalProvider implements P } } - private final class CachedGroupPrincipal extends BaseGroupPrincipal { + private static final class CachedGroupPrincipal extends BaseGroupPrincipal { private org.apache.jackrabbit.api.security.user.Group group; - CachedGroupPrincipal(@NotNull String principalName) { - super(principalName, ""); + CachedGroupPrincipal(@NotNull String principalName, @NotNull NamePathMapper namePathMapper, + @NotNull Root root, @NotNull UserConfiguration config) { + super(principalName, "", namePathMapper, root, config); } @Override String getOakPath() { String groupPath = getPath(); - return (groupPath == null) ? null : namePathMapper.getOakPath(getPath()); + return (groupPath == null) ? null : getNamePathMapper().getOakPath(getPath()); } @Override Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java?rev=1843537&r1=1843536&r2=1843537&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java (original) +++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java Thu Oct 11 09:17:51 2018 @@ -158,7 +158,7 @@ public class AbstractGroupPrincipalTest private boolean isEveryone; AGP() throws Exception { - super(testGroup.getPrincipal().getName(), root.getTree(testGroup.getPath()), getNamePathMapper()); + super(testGroup.getPrincipal().getName(), root.getTree(testGroup.getPath()), AbstractGroupPrincipalTest.this.getNamePathMapper()); member = getTestUser(); }