Author: angela
Date: Thu May 2 12:34:12 2019
New Revision: 1858534
URL: http://svn.apache.org/viewvc?rev=1858534&view=rev
Log:
OAK-8293 : PrincipalProviderImpl.findPrincipals my return null values in result
iterator
Added:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplErrorTest.java
(with props)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/AbstractPrincipalProviderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.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
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java?rev=1858534&r1=1858533&r2=1858534&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java
Thu May 2 12:34:12 2019
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.securi
import com.google.common.base.Function;
import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
import com.google.common.collect.Iterators;
import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
@@ -46,6 +45,7 @@ import java.security.Principal;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.Objects;
import java.util.Set;
/**
@@ -146,9 +146,7 @@ class PrincipalProviderImpl implements P
}
try {
Iterator<Authorizable> authorizables = findAuthorizables(nameHint,
searchType, offset, limit);
- Iterator<Principal> principals = Iterators.transform(
- Iterators.filter(authorizables, Predicates.notNull()),
- new AuthorizableToPrincipal());
+ Iterator<Principal> principals =
Iterators.filter(Iterators.transform(authorizables, new
AuthorizableToPrincipal()), Objects::nonNull);
// everyone is injected only in complete set, not on pages
boolean noRange = offset == 0 && limit == Long.MAX_VALUE;
@@ -255,9 +253,9 @@ class PrincipalProviderImpl implements P
private static final class EveryonePredicate implements
Predicate<Principal> {
private boolean servedEveryone = false;
@Override
- public boolean apply(@Nullable Principal principal) {
- String pName = (principal == null) ? null : principal.getName();
- if (EveryonePrincipal.NAME.equals(pName)) {
+ public boolean apply(Principal principal) {
+ // principal must never be null as the result was already filtered
for null.
+ if (EveryonePrincipal.NAME.equals(principal.getName())) {
if (servedEveryone) {
return false;
} else {
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/AbstractPrincipalProviderTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/AbstractPrincipalProviderTest.java?rev=1858534&r1=1858533&r2=1858534&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/AbstractPrincipalProviderTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/AbstractPrincipalProviderTest.java
Thu May 2 12:34:12 2019
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import com.google.common.collect.Iterators;
import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
@@ -42,6 +43,7 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.principal.PrincipalProvider;
import org.apache.jackrabbit.oak.spi.security.principal.SystemUserPrincipal;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
+import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -110,16 +112,18 @@ public abstract class AbstractPrincipalP
}
}
+ @NotNull
protected abstract PrincipalProvider createPrincipalProvider();
@Test
- public void testGetPrincipals() throws Exception {
+ public void testGetPrincipals() {
String adminId = adminSession.getAuthInfo().getUserID();
Set<? extends Principal> principals =
principalProvider.getPrincipals(adminId);
assertNotNull(principals);
assertFalse(principals.isEmpty());
assertTrue(principals.contains(EveryonePrincipal.getInstance()));
+ assertEquals(adminSession.getAuthInfo().getPrincipals(), principals);
for (Principal principal : principals) {
assertNotNull(principalProvider.getPrincipal(principal.getName()));
@@ -127,6 +131,28 @@ public abstract class AbstractPrincipalP
}
@Test
+ public void testGetPrincipalsNonExistingId() throws Exception {
+ assertNull(getUserManager(root).getAuthorizable("nonExisting"));
+ assertTrue(principalProvider.getPrincipals("nonExisting").isEmpty());
+ }
+
+ @Test
+ public void testGetPrincipalsForGroup() throws Exception {
+ Authorizable group = null;
+ try {
+ group = getUserManager(root).createGroup("testGroup");
+ root.commit();
+
+
assertTrue(principalProvider.getPrincipals(group.getID()).isEmpty());
+ } finally {
+ if (group != null) {
+ group.remove();
+ root.commit();
+ }
+ }
+ }
+
+ @Test
public void testGetItemBasedPrincipal() throws Exception {
assertTrue(userPrincipal instanceof ItemBasedPrincipal);
String jcrPath = ((ItemBasedPrincipal) userPrincipal).getPath();
@@ -149,7 +175,7 @@ public abstract class AbstractPrincipalP
}
@Test
- public void testGetitemBasedPrincipalPropertyPath() throws Exception {
+ public void testGetItemBasedPrincipalPropertyPath() throws Exception {
String propPath = PathUtils.concat(((ItemBasedPrincipal)
userPrincipal).getPath(), UserConstants.REP_PRINCIPAL_NAME);
assertNull(principalProvider.getItemBasedPrincipal(getNamePathMapper().getOakPath(propPath)));
}
@@ -435,4 +461,18 @@ public abstract class AbstractPrincipalP
}
return l;
}
+
+ @Test
+ public void testFindRangeNegativeOffset() {
+ List<String> expected = Arrays.asList(groupId, groupId2, groupId3);
+ Collections.sort(expected);
+
+ for (int limit = -1; limit < expected.size() + 2; limit++) {
+ Iterator<? extends Principal> i1 =
principalProvider.findPrincipals("testGroup", false,
+ PrincipalManager.SEARCH_TYPE_ALL, -1, limit);
+ Iterator<? extends Principal> i2 =
principalProvider.findPrincipals("testGroup", true,
+ PrincipalManager.SEARCH_TYPE_ALL, 0, limit);
+ assertTrue(Iterators.elementsEqual(i1, i2));
+ }
+ }
}
Added:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplErrorTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplErrorTest.java?rev=1858534&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplErrorTest.java
(added)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplErrorTest.java
Thu May 2 12:34:12 2019
@@ -0,0 +1,180 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jackrabbit.oak.security.principal;
+
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Sets;
+import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.api.security.user.Query;
+import org.apache.jackrabbit.api.security.user.User;
+import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.AbstractSecurityTest;
+import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
+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.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.jetbrains.annotations.NotNull;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import javax.jcr.RepositoryException;
+
+import java.security.Principal;
+import java.util.Iterator;
+
+import static org.apache.jackrabbit.oak.namepath.NamePathMapper.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.withSettings;
+
+public class PrincipalProviderImplErrorTest extends AbstractSecurityTest {
+
+ private User testUser;
+ private UserManager umMock;
+ private PrincipalProviderImpl principalProvider;
+
+ @Before
+ public void before() throws Exception {
+ super.before();
+
+ testUser = getTestUser();
+
+ Answer throwingAnswer = (Answer<Object>) invocation -> {
+ throw new RepositoryException();
+ };
+ umMock = mock(UserManager.class, throwingAnswer);
+ principalProvider = createPrincipalProvider(umMock);
+ }
+
+ private PrincipalProviderImpl createPrincipalProvider(@NotNull UserManager
um) {
+ UserConfiguration uc =
when(mock(UserConfiguration.class).getUserManager(any(Root.class),
any(NamePathMapper.class))).thenReturn(um).getMock();
+ return new PrincipalProviderImpl(root, uc, DEFAULT);
+ }
+
+ @Test
+ public void testGetPrincipal() throws Exception {
+ String principalName = testUser.getPrincipal().getName();
+
assertNull(principalProvider.getPrincipal(getTestUser().getPrincipal().getName()));
+
+ verify(umMock, times(1)).getAuthorizable(new
PrincipalImpl(principalName));
+ }
+
+ @Test
+ public void testGetPrincipalFailsOnUser() throws Exception {
+ String principalName = testUser.getPrincipal().getName();
+ Principal p = new PrincipalImpl(principalName);
+
+ User userMock = when(mock(User.class).getPrincipal()).thenThrow(new
RepositoryException()).getMock();
+ UserManager um =
when(mock(UserManager.class).getAuthorizable(p)).thenReturn(userMock).getMock();
+
+
assertNull(createPrincipalProvider(um).getPrincipal(getTestUser().getPrincipal().getName()));
+ verify(um, times(1)).getAuthorizable(p);
+ verify(userMock, times(1)).getPrincipal();
+ }
+
+ @Test
+ public void testGetEveryone() throws Exception {
+ assertSame(EveryonePrincipal.getInstance(),
principalProvider.getPrincipal(EveryonePrincipal.NAME));
+
+ verify(umMock, times(1)).getAuthorizable(new
PrincipalImpl(EveryonePrincipal.NAME));
+ }
+
+ @Test
+ public void testGetItemBasedPrincipal() throws Exception {
+ String jcrPath = getTestUser().getPath();
+ String oakPath = getNamePathMapper().getOakPath(jcrPath);
+ assertNotNull(oakPath);
+ assertNull(principalProvider.getItemBasedPrincipal(oakPath));
+
+ verify(umMock, times(1)).getAuthorizableByPath(jcrPath);
+ }
+
+ @Test
+ public void testGetMembershipPrincipals() throws Exception {
+
assertTrue(principalProvider.getMembershipPrincipals(testUser.getPrincipal()).isEmpty());
+
+ verify(umMock, times(1)).getAuthorizable(testUser.getPrincipal());
+ }
+
+ @Test
+ public void testGetMembershipPrincipalsFailsOnUser() throws Exception {
+ Principal p = testUser.getPrincipal();
+
+ User userMock = when(mock(User.class).memberOf()).thenThrow(new
RepositoryException()).getMock();
+ UserManager um =
when(mock(UserManager.class).getAuthorizable(p)).thenReturn(userMock).getMock();
+
+ assertEquals(Sets.newHashSet(EveryonePrincipal.getInstance()),
createPrincipalProvider(um).getMembershipPrincipals(p));
+
+ verify(um, times(1)).getAuthorizable(p);
+ verify(userMock, times(1)).memberOf();
+ }
+
+ @Test
+ public void testGetPrincipals() throws Exception {
+
assertTrue(principalProvider.getPrincipals(testUser.getID()).isEmpty());
+
+ verify(umMock, times(1)).getAuthorizable(testUser.getID());
+ }
+
+ @Test
+ public void testFindByTypeUser() throws Exception {
+
assertFalse(principalProvider.findPrincipals(PrincipalManager.SEARCH_TYPE_NOT_GROUP).hasNext());
+
+ verify(umMock, times(1)).findAuthorizables(any(Query.class));
+ }
+
+ @Test
+ public void testFindByTypeGroup() throws Exception {
+
assertFalse(principalProvider.findPrincipals(PrincipalManager.SEARCH_TYPE_GROUP).hasNext());
+
+ verify(umMock, times(1)).findAuthorizables(any(Query.class));
+ }
+
+ @Test
+ public void testFind() throws Exception {
+
assertFalse(principalProvider.findPrincipals(testUser.getPrincipal().getName(),
false, PrincipalManager.SEARCH_TYPE_NOT_GROUP, 0, Long.MAX_VALUE).hasNext());
+
+ verify(umMock, times(1)).findAuthorizables(any(Query.class));
+ }
+
+ @Test
+ public void testFindFailsOnUser() throws Exception {
+ Principal p = testUser.getPrincipal();
+
+ User userMock = when(mock(User.class).getPrincipal()).thenThrow(new
RepositoryException()).getMock();
+ UserManager um =
when(mock(UserManager.class).findAuthorizables(any(Query.class))).thenReturn(Iterators.singletonIterator(userMock)).getMock();
+
+ Iterator it =
createPrincipalProvider(um).findPrincipals(PrincipalManager.SEARCH_TYPE_NOT_GROUP);
+ assertFalse(it.hasNext());
+
+ verify(userMock, times(1)).getPrincipal();
+ }
+}
\ No newline at end of file
Propchange:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplErrorTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java?rev=1858534&r1=1858533&r2=1858534&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImplTest.java
Thu May 2 12:34:12 2019
@@ -17,29 +17,56 @@
package org.apache.jackrabbit.oak.security.principal;
import java.security.Principal;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import java.util.Set;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.api.security.user.Authorizable;
import org.apache.jackrabbit.api.security.user.Group;
+import org.apache.jackrabbit.api.security.user.Query;
+import org.apache.jackrabbit.api.security.user.User;
import org.apache.jackrabbit.api.security.user.UserManager;
+import org.apache.jackrabbit.oak.api.Root;
+import org.apache.jackrabbit.oak.namepath.NamePathMapper;
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.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
+import org.jetbrains.annotations.NotNull;
import org.junit.Test;
+import static org.apache.jackrabbit.oak.namepath.NamePathMapper.DEFAULT;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
public class PrincipalProviderImplTest extends AbstractPrincipalProviderTest {
+ @NotNull
+ @Override
protected PrincipalProvider createPrincipalProvider() {
return new PrincipalProviderImpl(root, getUserConfiguration(),
namePathMapper);
}
+ private PrincipalProviderImpl createPrincipalProvider(@NotNull UserManager
um) {
+ UserConfiguration uc =
when(mock(UserConfiguration.class).getUserManager(any(Root.class),
any(NamePathMapper.class))).thenReturn(um).getMock();
+ return new PrincipalProviderImpl(root, uc, DEFAULT);
+ }
+
@Test
public void testEveryoneMembers() throws Exception {
Principal everyone =
principalProvider.getPrincipal(EveryonePrincipal.NAME);
@@ -71,4 +98,52 @@ public class PrincipalProviderImplTest e
}
}
}
+
+ @Test
+ public void testGetGroupMembershipNonGroupPrincipal() throws Exception {
+ // Group.getPrincipal doesn't return a GroupPrincipal
+ Group gr = when(mock(Group.class).getPrincipal()).thenReturn(new
PrincipalImpl("group")).getMock();
+ Authorizable mockAuthorizable =
when(mock(User.class).memberOf()).thenReturn(Iterators.singletonIterator(gr)).getMock();
+ UserManager umMock =
when(mock(UserManager.class).getAuthorizable(any(Principal.class))).thenReturn(mockAuthorizable).getMock();
+
+ Set<Principal> membership =
createPrincipalProvider(umMock).getMembershipPrincipals(new
PrincipalImpl("userPrincipal"));
+ assertEquals(ImmutableSet.of(EveryonePrincipal.getInstance()),
membership);
+ }
+
+ @Test
+ public void testGetItemBasedPrincipalNotItemBased() throws Exception {
+ Authorizable mockUser =
when(mock(User.class).getPrincipal()).thenReturn(new
PrincipalImpl("noPath")).getMock();
+ UserManager umMock = mock(UserManager.class);
+ when(umMock.getAuthorizableByPath(anyString())).thenReturn(mockUser);
+
+
createPrincipalProvider(umMock).getItemBasedPrincipal("/path/to/authorizable");
+ verify(umMock,
times(1)).getAuthorizableByPath("/path/to/authorizable");
+ }
+
+ @Test
+ public void testFindWithUnexpectedNullAuthorizable() throws Exception {
+ List<Authorizable> l = new ArrayList<>();
+ l.add(null);
+ UserManager umMock = mock(UserManager.class);
+
when(umMock.findAuthorizables(any(Query.class))).thenReturn(l.iterator());
+
+ Iterator<? extends Principal> result =
createPrincipalProvider(umMock).findPrincipals(PrincipalManager.SEARCH_TYPE_NOT_GROUP);
+ assertFalse(result.hasNext());
+
+ result =
createPrincipalProvider(umMock).findPrincipals(PrincipalManager.SEARCH_TYPE_GROUP);
+
assertTrue(Iterators.elementsEqual(Iterators.singletonIterator(EveryonePrincipal.getInstance()),
result));
+ }
+
+ @Test
+ public void testFindWithUnexpectedNullPrincipal() throws Exception {
+ Authorizable userMock =
when(mock(Authorizable.class).getPrincipal()).thenReturn(null).getMock();
+ UserManager umMock = mock(UserManager.class);
+
when(umMock.findAuthorizables(any(Query.class))).thenReturn(Iterators.singletonIterator(userMock));
+
+ Iterator<? extends Principal> result =
createPrincipalProvider(umMock).findPrincipals(PrincipalManager.SEARCH_TYPE_NOT_GROUP);
+ assertFalse(result.hasNext());
+
+ result =
createPrincipalProvider(umMock).findPrincipals(PrincipalManager.SEARCH_TYPE_GROUP);
+
assertTrue(Iterators.elementsEqual(Iterators.singletonIterator(EveryonePrincipal.getInstance()),
result));
+ }
}
\ No newline at end of file
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=1858534&r1=1858533&r2=1858534&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
Thu May 2 12:34:12 2019
@@ -30,12 +30,14 @@ import org.apache.jackrabbit.oak.securit
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.PrincipalProvider;
+import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
public class UserPrincipalProviderTest extends AbstractPrincipalProviderTest {
+ @NotNull
@Override
protected PrincipalProvider createPrincipalProvider() {
return new UserPrincipalProvider(root, getUserConfiguration(),
namePathMapper);
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=1858534&r1=1858533&r2=1858534&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
Thu May 2 12:34:12 2019
@@ -53,6 +53,7 @@ import org.apache.jackrabbit.oak.spi.sec
import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration;
import org.apache.jackrabbit.oak.util.NodeUtil;
import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
+import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.junit.Test;
@@ -103,6 +104,7 @@ public class UserPrincipalProviderWithCa
);
}
+ @NotNull
@Override
protected PrincipalProvider createPrincipalProvider() {
return createPrincipalProvider(root);