Author: angela
Date: Wed May 29 07:27:36 2019
New Revision: 1860319
URL: http://svn.apache.org/viewvc?rev=1860319&view=rev
Log:
OAK-8365 UserManagerImpl: unreacheable code when retrieving user/group from ID
and tree
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java?rev=1860319&r1=1860318&r2=1860319&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserManagerImpl.java
Wed May 29 07:27:36 2019
@@ -108,12 +108,8 @@ public class UserManagerImpl implements
//--------------------------------------------------------< UserManager
>---
@Override
public Authorizable getAuthorizable(String id) throws RepositoryException {
- Authorizable authorizable = null;
Tree tree = (Strings.isNullOrEmpty(id)) ? null :
userProvider.getAuthorizable(id);
- if (tree != null) {
- authorizable = getAuthorizable(UserUtil.getAuthorizableId(tree),
tree);
- }
- return authorizable;
+ return getAuthorizable(tree);
}
@Override
@@ -379,7 +375,20 @@ public class UserManagerImpl implements
if (tree == null || !tree.exists()) {
return null;
}
- return getAuthorizable(UserUtil.getAuthorizableId(tree), tree);
+ String id = UserUtil.getAuthorizableId(tree);
+ if (id == null) {
+ return null;
+ }
+ if (UserUtil.isType(tree, AuthorizableType.USER)) {
+ if (UserUtil.isSystemUser(tree)) {
+ return new SystemUserImpl(id, tree, this);
+ } else {
+ return new UserImpl(id, tree, this);
+ }
+ } else {
+ // type has already been verified upon retrieving the ID, safe to
assume this is a group
+ return new GroupImpl(id, tree, this);
+ }
}
@Nullable
@@ -420,24 +429,6 @@ public class UserManagerImpl implements
return config;
}
- @Nullable
- private Authorizable getAuthorizable(@Nullable String id, @Nullable Tree
tree) throws RepositoryException {
- if (id == null || tree == null) {
- return null;
- }
- if (UserUtil.isType(tree, AuthorizableType.USER)) {
- if (UserUtil.isSystemUser(tree)) {
- return new SystemUserImpl(id, tree, this);
- } else {
- return new UserImpl(id, tree, this);
- }
- } else if (UserUtil.isType(tree, AuthorizableType.GROUP)) {
- return new GroupImpl(id, tree, this);
- } else {
- throw new RepositoryException("Not a user or group tree " +
tree.getPath() + '.');
- }
- }
-
private void checkValidId(@Nullable String id) throws RepositoryException {
if (id == null || id.isEmpty()) {
throw new IllegalArgumentException("Invalid ID " + id);