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 2021/05/12 15:06:47 UTC
svn commit: r1889802 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/security/user/
main/java/org/apache/jackrabbit/oak/security/user/autosave/
test/java/org/apache/jackrabbit/oak/security/user/
test/java/org/apache/jackrab...
Author: angela
Date: Wed May 12 15:06:47 2021
New Revision: 1889802
URL: http://svn.apache.org/viewvc?rev=1889802&view=rev
Log:
OAK-9431 : Improvements to o.a.j.o.security.user package
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.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/UserAuthentication.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.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/security/user/Utils.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/GroupImpl.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipalTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProviderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipWriterTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryAdminTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RandomAuthorizableNodeNameTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RepMembersConflictHandlerTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemRelativePathTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterSessionAutosaveTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderWithCacheTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UtilsTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableNodeNameTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableImpl.java Wed May 12 15:06:47 2021
@@ -192,9 +192,20 @@ abstract class AuthorizableImpl implemen
}
}
+ @Nullable
+ String getPrincipalNameOrNull() {
+ if (principalName == null) {
+ PropertyState pNameProp = tree.getProperty(REP_PRINCIPAL_NAME);
+ if (pNameProp != null) {
+ principalName = pNameProp.getValue(STRING);
+ }
+ }
+ return principalName;
+ }
+
@NotNull
String getPrincipalName() throws RepositoryException {
- String pName = internalGetPrincipalName();
+ String pName = getPrincipalNameOrNull();
if (pName == null) {
String msg = "Authorizable without principal name " + id;
log.warn(msg);
@@ -231,18 +242,7 @@ abstract class AuthorizableImpl implemen
* is member of; {@code false} otherwise.
*/
boolean isEveryone() {
- return isGroup() && EveryonePrincipal.NAME.equals(internalGetPrincipalName());
- }
-
- @Nullable
- private String internalGetPrincipalName() {
- if (principalName == null) {
- PropertyState pNameProp = tree.getProperty(REP_PRINCIPAL_NAME);
- if (pNameProp != null) {
- principalName = pNameProp.getValue(STRING);
- }
- }
- return principalName;
+ return Utils.isEveryone(this);
}
/**
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=1889802&r1=1889801&r2=1889802&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 Wed May 12 15:06:47 2021
@@ -165,13 +165,10 @@ class GroupImpl extends AuthorizableImpl
return false;
} else {
Tree memberTree = authorizableImpl.getTree();
-
boolean success = getMembershipProvider().removeMember(getTree(), memberTree);
-
if (success) {
getUserManager().onGroupUpdate(this, true, authorizable);
}
-
return success;
}
}
@@ -203,15 +200,9 @@ class GroupImpl extends AuthorizableImpl
private Iterator<Authorizable> getMembers(boolean includeInherited) throws RepositoryException {
UserManagerImpl userMgr = getUserManager();
if (isEveryone()) {
- String propName = getUserManager().getNamePathMapper().getJcrName((REP_PRINCIPAL_NAME));
+ String propName = userMgr.getNamePathMapper().getJcrName((REP_PRINCIPAL_NAME));
Iterator<Authorizable> result = Iterators.filter(userMgr.findAuthorizables(propName, null, UserManager.SEARCH_TYPE_AUTHORIZABLE), Predicates.notNull());
- return Iterators.filter(result,
- authorizable -> {
- if (authorizable instanceof AuthorizableImpl) {
- return !((AuthorizableImpl) authorizable).isEveryone();
- }
- return true;
- }
+ return Iterators.filter(result, authorizable -> !Utils.isEveryone(authorizable)
);
} else {
Iterator<String> oakPaths = getMembershipProvider().getMembers(getTree(), includeInherited);
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserAuthentication.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserAuthentication.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserAuthentication.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserAuthentication.java Wed May 12 15:06:47 2021
@@ -181,7 +181,7 @@ class UserAuthentication implements Auth
return user;
}
- private static void checkSuccess(boolean success, String msg) throws LoginException {
+ private static void checkSuccess(boolean success, @NotNull String msg) throws LoginException {
if (!success) {
throw new FailedLoginException(msg);
}
@@ -192,7 +192,7 @@ class UserAuthentication implements Auth
return (base instanceof SimpleCredentials) && userId.equals(((SimpleCredentials) base).getUserID());
}
- private boolean changePassword(User user, SimpleCredentials credentials) {
+ private boolean changePassword(@NotNull User user, @NotNull SimpleCredentials credentials) {
try {
Object newPasswordObject = credentials.getAttribute(CREDENTIALS_ATTRIBUTE_NEWPASSWORD);
if (newPasswordObject != null) {
@@ -221,7 +221,7 @@ class UserAuthentication implements Auth
}
}
- private boolean impersonate(AuthInfo info, User user) {
+ private static boolean impersonate(@NotNull AuthInfo info, @NotNull User user) {
try {
if (user.getID().equals(info.getUserID())) {
log.debug("User {} wants to impersonate himself -> success.", info.getUserID());
@@ -238,7 +238,7 @@ class UserAuthentication implements Auth
}
@Nullable
- private Long getPasswordLastModified(User user) throws RepositoryException {
+ private Long getPasswordLastModified(@NotNull User user) throws RepositoryException {
Tree userTree;
if (user instanceof UserImpl) {
userTree = ((UserImpl) user).getTree();
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImpl.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImpl.java Wed May 12 15:06:47 2021
@@ -107,7 +107,7 @@ class UserImpl extends AuthorizableImpl
}
@Override
- public void changePassword(String password) throws RepositoryException {
+ public void changePassword(@Nullable String password) throws RepositoryException {
if (password == null) {
throw new RepositoryException("Attempt to set 'null' password for user " + getID());
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java Wed May 12 15:06:47 2021
@@ -159,7 +159,7 @@ class UserImporter implements ProtectedP
* memberships during processing. if both would be handled only via the reference tracker {@link Membership#process()}
* would remove the members from the property importer.
*/
- private Map<String, Membership> memberships = new HashMap<>();
+ private final Map<String, Membership> memberships = new HashMap<>();
/**
* Temporary store for the pw an imported new user to be able to call
@@ -170,7 +170,7 @@ class UserImporter implements ProtectedP
/**
* Remember all new principals for impersonation handling.
*/
- private Map<String, Principal> principals = new HashMap<>();
+ private final Map<String, Principal> principals = new HashMap<>();
private UserMonitor userMonitor = UserMonitor.NOOP;
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=1889802&r1=1889801&r2=1889802&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 Wed May 12 15:06:47 2021
@@ -50,7 +50,7 @@ class UserValidator extends DefaultValid
private final AuthorizableType authorizableType;
- UserValidator(Tree parentBefore, Tree parentAfter, UserValidatorProvider provider) {
+ UserValidator(@Nullable Tree parentBefore, @Nullable Tree parentAfter, @NotNull UserValidatorProvider provider) {
this.parentBefore = parentBefore;
this.parentAfter = parentAfter;
this.provider = provider;
@@ -152,9 +152,9 @@ class UserValidator extends DefaultValid
//------------------------------------------------------------< private >---
- private static Validator newValidator(Tree parentBefore,
- Tree parentAfter,
- UserValidatorProvider provider) {
+ private static Validator newValidator(@Nullable Tree parentBefore,
+ @Nullable Tree parentAfter,
+ @NotNull UserValidatorProvider provider) {
return new VisibleValidator(
new UserValidator(parentBefore, parentAfter, provider),
true,
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/Utils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/Utils.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/Utils.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/Utils.java Wed May 12 15:06:47 2021
@@ -16,15 +16,19 @@
*/
package org.apache.jackrabbit.oak.security.user;
+import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
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.util.UserUtil;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import javax.jcr.AccessDeniedException;
+import javax.jcr.RepositoryException;
final class Utils {
@@ -73,4 +77,21 @@ final class Utils {
static boolean canHavePasswordExpired(@NotNull User user, @NotNull ConfigurationParameters config) {
return !user.isAdmin() || config.getConfigValue(UserAuthentication.PARAM_PASSWORD_EXPIRY_FOR_ADMIN, false);
}
+
+ static boolean isEveryone(@NotNull Authorizable authorizable) {
+ return authorizable.isGroup() && EveryonePrincipal.NAME.equals(getPrincipalName(authorizable));
+ }
+
+ @Nullable
+ private static String getPrincipalName(@NotNull Authorizable authorizable) {
+ if (authorizable instanceof AuthorizableImpl) {
+ return ((AuthorizableImpl) authorizable).getPrincipalNameOrNull();
+ } else {
+ try {
+ return authorizable.getPrincipal().getName();
+ } catch (RepositoryException e) {
+ return null;
+ }
+ }
+ }
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/GroupImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/GroupImpl.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/GroupImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/GroupImpl.java Wed May 12 15:06:47 2021
@@ -110,7 +110,7 @@ class GroupImpl extends AuthorizableImpl
}
}
- private boolean isValid(@NotNull Authorizable a) {
+ private static boolean isValid(@NotNull Authorizable a) {
return a instanceof AuthorizableImpl;
}
}
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=1889802&r1=1889801&r2=1889802&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 Wed May 12 15:06:47 2021
@@ -162,7 +162,7 @@ public class AbstractGroupPrincipalTest
private class AGP extends AbstractGroupPrincipal {
- private Authorizable member;
+ private final Authorizable member;
private boolean isEveryone;
AGP() throws Exception {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProviderTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/CacheValidatorProviderTest.java Wed May 12 15:06:47 2021
@@ -47,6 +47,7 @@ import java.util.UUID;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -127,7 +128,7 @@ public class CacheValidatorProviderTest
}
@Test
- public void testChangePrimaryType() throws RepositoryException {
+ public void testChangePrimaryTypeUser() throws Exception {
for (Authorizable a : authorizables) {
try {
Tree node = getAuthorizableTree(a);
@@ -177,11 +178,11 @@ public class CacheValidatorProviderTest
@Test
public void testCreateCacheBelowPersistedProfile() throws Exception {
- try {
- Tree node = getAuthorizableTree(getTestUser());
- Tree child = TreeUtil.addChild(node, "profile", NodeTypeConstants.NT_OAK_UNSTRUCTURED);
- root.commit();
+ Tree node = getAuthorizableTree(getTestUser());
+ Tree child = TreeUtil.addChild(node, "profile", NodeTypeConstants.NT_OAK_UNSTRUCTURED);
+ root.commit();
+ try {
TreeUtil.addChild(child, CacheConstants.REP_CACHE, CacheConstants.NT_REP_CACHE).setProperty(CacheConstants.REP_EXPIRATION, 23L, Type.LONG);
root.commit(CacheValidatorProvider.asCommitAttributes());
fail("Creating rep:cache node below a user or group must fail.");
@@ -235,6 +236,7 @@ public class CacheValidatorProviderTest
Tree cache = getCache(getTestUser());
cache.remove();
root.commit();
+ assertFalse(getAuthorizableTree(getTestUser()).hasChild(CacheConstants.REP_CACHE));
}
@Test
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipWriterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipWriterTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipWriterTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/MembershipWriterTest.java Wed May 12 15:06:47 2021
@@ -41,10 +41,8 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-
/**
* Tests large group and user graphs.
-
*
* @since OAK 1.0
*/
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryAdminTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryAdminTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryAdminTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryAdminTest.java Wed May 12 15:06:47 2021
@@ -114,7 +114,7 @@ public class PasswordExpiryAdminTest ext
public void testAuthenticatePasswordExpiredNewUser() throws Exception {
Authentication a = new UserAuthentication(getUserConfiguration(), root, userId);
// during user creation pw last modified is set, thus it shouldn't expire
- a.authenticate(new SimpleCredentials(userId, userId.toCharArray()));
+ assertTrue(a.authenticate(new SimpleCredentials(userId, userId.toCharArray())));
}
@Test
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryHistoryTest.java Wed May 12 15:06:47 2021
@@ -21,20 +21,16 @@ import com.google.common.collect.Immutab
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.oak.AbstractSecurityTest;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
-import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
import org.apache.jackrabbit.oak.spi.security.authentication.Authentication;
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
-import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableAction;
import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableActionProvider;
import org.apache.jackrabbit.oak.spi.security.user.action.PasswordValidationAction;
-import org.jetbrains.annotations.NotNull;
import org.junit.Before;
import org.junit.Test;
import javax.jcr.SimpleCredentials;
import javax.security.auth.login.CredentialExpiredException;
-import java.util.List;
import static org.apache.jackrabbit.oak.spi.security.user.UserConstants.CREDENTIALS_ATTRIBUTE_NEWPASSWORD;
import static org.junit.Assert.assertEquals;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordExpiryTest.java Wed May 12 15:06:47 2021
@@ -43,7 +43,6 @@ import static org.apache.jackrabbit.oak.
import static org.apache.jackrabbit.oak.spi.security.user.UserConstants.REP_PWD;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
@@ -121,7 +120,7 @@ public class PasswordExpiryTest extends
public void testAuthenticatePasswordExpiredNewUser() throws Exception {
Authentication a = new UserAuthentication(getUserConfiguration(), root, userId);
// during user creation pw last modified is set, thus it shouldn't expire
- a.authenticate(new SimpleCredentials(userId, userId.toCharArray()));
+ assertTrue(a.authenticate(new SimpleCredentials(userId, userId.toCharArray())));
}
@Test
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/PasswordHistoryTest.java Wed May 12 15:06:47 2021
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.oak.security.user;
import java.lang.reflect.Field;
+import java.util.Collections;
import java.util.List;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.ConstraintViolationException;
@@ -42,7 +43,7 @@ import static org.junit.Assert.assertTru
import static org.junit.Assert.fail;
/**
- * @see OAK-2445
+ * @see <a href="https://issues.apache.org/jira/browse/OAK-2445">OAK-2445</a>
*/
public class PasswordHistoryTest extends AbstractSecurityTest implements UserConstants {
@@ -59,9 +60,8 @@ public class PasswordHistoryTest extends
@NotNull
private List<String> getHistory(@NotNull User user) throws RepositoryException {
- return ImmutableList.copyOf(TreeUtil.getStrings(
- root.getTree(user.getPath()).getChild(REP_PWD),
- REP_PWD_HISTORY)).reverse();
+ Iterable<String> history = TreeUtil.getStrings(root.getTree(user.getPath()).getChild(REP_PWD), REP_PWD_HISTORY);
+ return (history == null) ? Collections.emptyList() : ImmutableList.copyOf(history).reverse();
}
/**
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RandomAuthorizableNodeNameTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RandomAuthorizableNodeNameTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RandomAuthorizableNodeNameTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RandomAuthorizableNodeNameTest.java Wed May 12 15:06:47 2021
@@ -40,7 +40,7 @@ public class RandomAuthorizableNodeNameT
private final String id = "id";
- private AuthorizableNodeName nameGenerator = new RandomAuthorizableNodeName();
+ private final AuthorizableNodeName nameGenerator = new RandomAuthorizableNodeName();
@Override
public void after() throws Exception {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RepMembersConflictHandlerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RepMembersConflictHandlerTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RepMembersConflictHandlerTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/RepMembersConflictHandlerTest.java Wed May 12 15:06:47 2021
@@ -398,6 +398,13 @@ public class RepMembersConflictHandlerTe
}
@Test
+ public void testAddExistingPropertyOther() throws Exception {
+ RepMembersConflictHandler handler = new RepMembersConflictHandler();
+ PropertyState ours = PropertyStates.createProperty("any", "value");
+ assertSame(ThreeWayConflictHandler.Resolution.IGNORED, handler.addExistingProperty(mock(NodeBuilder.class), ours, mock(PropertyState.class)));
+ }
+
+ @Test
public void testChangeDeletedPropertyRepMembers() {
RepMembersConflictHandler handler = new RepMembersConflictHandler();
PropertyState ours = PropertyStates.createProperty(UserConstants.REP_MEMBERS, "value");
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemRelativePathTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemRelativePathTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemRelativePathTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/SystemRelativePathTest.java Wed May 12 15:06:47 2021
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.oak.security.user;
+import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.oak.AbstractSecurityTest;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
@@ -60,11 +61,13 @@ public class SystemRelativePathTest exte
@Test
public void testRelPath() throws RepositoryException {
- getUserManager(root).createSystemUser("testRelPath", REL_PATH);
+ User u = getUserManager(root).createSystemUser("testRelPath", REL_PATH);
+ assertTrue(u.getPath().contains("/"+REL_PATH+"/"));
}
@Test
public void testBelowRelPath() throws RepositoryException {
- getUserManager(root).createSystemUser("testBelowRelPath", REL_PATH+"/subtree");
+ User u = getUserManager(root).createSystemUser("testBelowRelPath", REL_PATH+"/subtree");
+ assertTrue(u.getPath().contains("/"+REL_PATH+"/subtree/"));
}
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java Wed May 12 15:06:47 2021
@@ -222,14 +222,14 @@ public class UserContextTest implements
NT_REP_MEMBER_REFERENCES, ImmutableList.of(REP_MEMBERS)
);
- for (String ntName : m.keySet()) {
- Tree t = mockTree("anyName", ntName);
+ m.forEach((key, value) -> {
+ Tree t = mockTree("anyName", key);
TreeLocation location = Mockito.mock(TreeLocation.class);
when(location.getTree()).thenReturn(t);
when(location.exists()).thenReturn(true);
- for (String propName : m.get(ntName)) {
+ for (String propName : value) {
PropertyState property = PropertyStates.createProperty(propName, "value");
when(location.getProperty()).thenReturn(property);
@@ -239,7 +239,7 @@ public class UserContextTest implements
PropertyState property = PropertyStates.createProperty("anyName", "value");
when(location.getProperty()).thenReturn(property);
assertFalse(ctx.definesLocation(location));
- }
+ });
}
@Test
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterImpersonationIgnoreTest.java Wed May 12 15:06:47 2021
@@ -30,8 +30,6 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
import org.apache.jackrabbit.oak.spi.security.user.action.UserAction;
import org.junit.Test;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
import javax.jcr.RepositoryException;
@@ -43,7 +41,6 @@ import static org.junit.Assert.assertNul
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
public class UserImporterImpersonationIgnoreTest extends UserImporterBaseTest {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterSessionAutosaveTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterSessionAutosaveTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterSessionAutosaveTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserImporterSessionAutosaveTest.java Wed May 12 15:06:47 2021
@@ -16,18 +16,12 @@
*/
package org.apache.jackrabbit.oak.security.user;
-import javax.jcr.ImportUUIDBehavior;
-
import com.google.common.collect.ImmutableMap;
import org.apache.jackrabbit.api.security.user.UserManager;
import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
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.ProtectedItemImporter;
-import org.apache.jackrabbit.oak.spi.xml.ReferenceChangeTracker;
-import org.junit.Test;
-
-import static org.junit.Assert.assertFalse;
public class UserImporterSessionAutosaveTest extends UserImporterTest {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserManagerImplTest.java Wed May 12 15:06:47 2021
@@ -71,7 +71,7 @@ import static org.mockito.Mockito.when;
public class UserManagerImplTest extends AbstractSecurityTest {
private UserManagerImpl userMgr;
- private String testUserId = "testUser";
+ private final String testUserId = "testUser";
@Before
public void before() throws Exception {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderTest.java Wed May 12 15:06:47 2021
@@ -24,20 +24,22 @@ import org.apache.jackrabbit.api.securit
import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.QueryEngine;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
import org.apache.jackrabbit.oak.security.principal.AbstractPrincipalProviderTest;
-import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters;
+import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
import org.apache.jackrabbit.oak.spi.security.principal.AdminPrincipal;
import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
-import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalProvider;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
+import java.lang.reflect.Method;
import java.security.Principal;
import java.text.ParseException;
import java.util.Arrays;
@@ -310,4 +312,16 @@ public class UserPrincipalProviderTest e
assertNotNull(it);
assertFalse(it.hasNext());
}
+
+ @Test
+ public void testCreatePrincipalInvalidType() throws Exception {
+ Method m = UserPrincipalProvider.class.getDeclaredMethod("createPrincipal", Tree.class);
+ m.setAccessible(true);
+
+ assertNull(m.invoke(principalProvider, (Tree)null));
+
+ PropertyState ps = PropertyStates.createProperty(JCR_PRIMARYTYPE, NodeTypeConstants.NT_OAK_UNSTRUCTURED, Type.NAME);
+ Tree tree = when(mock(Tree.class).getProperty(JCR_PRIMARYTYPE)).thenReturn(ps).getMock();
+ assertNull(m.invoke(principalProvider, tree));
+ }
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderWithCacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderWithCacheTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderWithCacheTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderWithCacheTest.java Wed May 12 15:06:47 2021
@@ -41,10 +41,8 @@ import org.apache.jackrabbit.oak.spi.sec
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
-import javax.jcr.NoSuchWorkspaceException;
import javax.jcr.SimpleCredentials;
import javax.security.auth.Subject;
-import javax.security.auth.login.LoginException;
import java.security.Principal;
import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserProviderTest.java Wed May 12 15:06:47 2021
@@ -76,8 +76,8 @@ public class UserProviderTest {
private String defaultGroupPath;
private Map<String, Object> customOptions;
- private String customUserPath = "/home/users";
- private String customGroupPath = "/home/groups";
+ private final String customUserPath = "/home/users";
+ private final String customGroupPath = "/home/groups";
@Before
public void setUp() throws Exception {
@@ -143,9 +143,9 @@ public class UserProviderTest {
m.put("b_Hb", "/b/b_/b_Hb");
m.put("basim", "/b/ba/basim");
- for (String uid : m.keySet()) {
- userTree = up.createUser(uid, null);
- assertEquals(defaultUserPath + m.get(uid), userTree.getPath());
+ for (Map.Entry<String, String> entry : m.entrySet()) {
+ userTree = up.createUser(entry.getKey(), null);
+ assertEquals(defaultUserPath + entry.getValue(), userTree.getPath());
}
}
@@ -214,9 +214,9 @@ public class UserProviderTest {
m.put("b_Lb", "/b/b_/b_L/b_Lb");
m.put("basiL", "/b/ba/bas/basiL");
- for (String uid : m.keySet()) {
- userTree = userProvider.createUser(uid, null);
- assertEquals(customUserPath + m.get(uid), userTree.getPath());
+ for (Map.Entry<String, String> entry : m.entrySet()) {
+ userTree = userProvider.createUser(entry.getKey(), null);
+ assertEquals(customUserPath + entry.getValue(), userTree.getPath());
}
}
@@ -232,9 +232,9 @@ public class UserProviderTest {
colliding.put("amalia", null);
colliding.put("Amalia", "a/b/c");
- for (String uid : colliding.keySet()) {
+ for (Map.Entry<String, String> entry : colliding.entrySet()) {
try {
- userProvider.createUser(uid, colliding.get(uid));
+ userProvider.createUser(entry.getKey(), entry.getValue());
root.commit();
fail("userID collision must be detected");
} catch (CommitFailedException e) {
@@ -242,9 +242,9 @@ public class UserProviderTest {
}
}
- for (String uid : colliding.keySet()) {
+ for (Map.Entry<String, String> entry : colliding.entrySet()) {
try {
- userProvider.createGroup(uid, colliding.get(uid));
+ userProvider.createGroup(entry.getKey(), entry.getValue());
root.commit();
fail("userID collision must be detected");
} catch (CommitFailedException e) {
@@ -319,11 +319,12 @@ public class UserProviderTest {
m.put("z/x", "/z/" + Text.escapeIllegalJcrChars("z/") + '/' + Text.escapeIllegalJcrChars("z/x"));
m.put("%\r|", '/' +Text.escapeIllegalJcrChars("%")+ '/' + Text.escapeIllegalJcrChars("%\r") + '/' + Text.escapeIllegalJcrChars("%\r|"));
- for (String uid : m.keySet()) {
+ for (Map.Entry<String, String> entry : m.entrySet()) {
+ String uid = entry.getKey();
Tree user = userProvider.createUser(uid, null);
root.commit();
- assertEquals(defaultUserPath + m.get(uid), user.getPath());
+ assertEquals(defaultUserPath + entry.getValue(), user.getPath());
assertEquals(uid, UserUtil.getAuthorizableId(user));
Tree ath = userProvider.getAuthorizable(uid);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UtilsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UtilsTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UtilsTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UtilsTest.java Wed May 12 15:06:47 2021
@@ -18,17 +18,23 @@ package org.apache.jackrabbit.oak.securi
import java.util.Map;
import com.google.common.collect.ImmutableMap;
+import org.apache.jackrabbit.api.security.user.Authorizable;
+import org.apache.jackrabbit.api.security.user.Group;
import org.apache.jackrabbit.oak.AbstractSecurityTest;
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants;
+import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import javax.jcr.AccessDeniedException;
+import javax.jcr.RepositoryException;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -88,9 +94,9 @@ public class UtilsTest extends AbstractS
"a/b/c/../..", "/a",
"a/././././b/c", "/a/b/c"
);
- for (String relPath : map.keySet()) {
- Tree t = Utils.getOrAddTree(tree, relPath, NodeTypeConstants.NT_OAK_UNSTRUCTURED);
- assertEqualPath(root.getTree(map.get(relPath)), t);
+ for (Map.Entry<String, String> entry : map.entrySet()) {
+ Tree t = Utils.getOrAddTree(tree, entry.getKey(), NodeTypeConstants.NT_OAK_UNSTRUCTURED);
+ assertEqualPath(root.getTree(entry.getValue()), t);
}
}
@@ -113,4 +119,34 @@ public class UtilsTest extends AbstractS
Utils.getOrAddTree(t, "a/a/b", NodeTypeConstants.NT_OAK_UNSTRUCTURED);
}
+
+ @Test
+ public void testIsEveryoneUser() throws Exception {
+ AuthorizableImpl user = when(mock(AuthorizableImpl.class).getPrincipal()).thenReturn(EveryonePrincipal.getInstance()).getMock();
+ when(user.isGroup()).thenReturn(false);
+ assertFalse(Utils.isEveryone(user));
+ }
+
+ @Test
+ public void testIsEveryoneGroup() throws Exception {
+ Group gr = getUserManager(root).createGroup(EveryonePrincipal.getInstance());
+ assertTrue(Utils.isEveryone(gr));
+ }
+
+ @Test
+ public void testIsEveryoneOtherAuthorizable() throws Exception {
+ Authorizable a = when(mock(Authorizable.class).getPrincipal()).thenReturn(EveryonePrincipal.getInstance()).getMock();
+ when(a.isGroup()).thenReturn(false);
+ assertFalse(Utils.isEveryone(a));
+
+ when(a.isGroup()).thenReturn(true);
+ assertTrue(Utils.isEveryone(a));
+ }
+
+ @Test
+ public void testIsEveryoneGetPrincipalFails() throws Exception {
+ Authorizable a = when(mock(Authorizable.class).getPrincipal()).thenThrow(new RepositoryException()).getMock();
+ when(a.isGroup()).thenReturn(true);
+ assertFalse(Utils.isEveryone(a));
+ }
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/QueryUtilTest.java Wed May 12 15:06:47 2021
@@ -50,14 +50,13 @@ import static org.mockito.Mockito.when;
public class QueryUtilTest {
- private PartialValueFactory valueFactory = new PartialValueFactory(NamePathMapper.DEFAULT);
+ private final PartialValueFactory valueFactory = new PartialValueFactory(NamePathMapper.DEFAULT);
private static void assertSearchRoot(@NotNull Map<AuthorizableType, String> mapping, @NotNull ConfigurationParameters params) {
- for (AuthorizableType type : mapping.keySet()) {
- String s = mapping.get(type);
+ mapping.forEach((key, s) -> {
String expected = (PathUtils.denotesRoot(s)) ? QueryConstants.SEARCH_ROOT_PATH : QueryConstants.SEARCH_ROOT_PATH + s;
- assertEquals(expected, QueryUtil.getSearchRoot(type, params));
- }
+ assertEquals(expected, QueryUtil.getSearchRoot(key, params));
+ });
}
@Test
@@ -156,9 +155,7 @@ public class QueryUtilTest {
AuthorizableType.GROUP, UserConstants.NT_REP_GROUP,
AuthorizableType.AUTHORIZABLE, UserConstants.NT_REP_AUTHORIZABLE);
- for (AuthorizableType type : ntNames.keySet()) {
- assertEquals(ntNames.get(type), QueryUtil.getNodeTypeName(type));
- }
+ ntNames.forEach((key, value) -> assertEquals(value, QueryUtil.getNodeTypeName(key)));
}
@Test
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManagerTest.java Wed May 12 15:06:47 2021
@@ -80,7 +80,7 @@ public class UserQueryManagerTest extend
private Value v;
- private List<Group> groups = new ArrayList<>();
+ private final List<Group> groups = new ArrayList<>();
@Before
public void before() throws Exception {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableActionProviderTest.java Wed May 12 15:06:47 2021
@@ -25,7 +25,6 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.user.action.AuthorizableActionProvider;
import org.apache.jackrabbit.oak.spi.whiteboard.DefaultWhiteboard;
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
-import org.jetbrains.annotations.NotNull;
import org.junit.After;
import org.junit.Test;
import org.mockito.Mockito;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableNodeNameTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableNodeNameTest.java?rev=1889802&r1=1889801&r2=1889802&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableNodeNameTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/whiteboard/WhiteboardAuthorizableNodeNameTest.java Wed May 12 15:06:47 2021
@@ -20,7 +20,6 @@ import com.google.common.collect.Immutab
import org.apache.jackrabbit.oak.spi.security.user.AuthorizableNodeName;
import org.apache.jackrabbit.oak.spi.whiteboard.DefaultWhiteboard;
import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
-import org.jetbrains.annotations.NotNull;
import org.junit.After;
import org.junit.Test;