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 2019/08/19 13:29:01 UTC

svn commit: r1865457 - in /jackrabbit/oak/trunk: oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/extern...

Author: angela
Date: Mon Aug 19 13:29:01 2019
New Revision: 1865457

URL: http://svn.apache.org/viewvc?rev=1865457&view=rev
Log:
OAK-8547 : Nullable/Notnull Annotations for Principal Management API -> adjusting implementations

Modified:
    jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
    jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java
    jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeDefaultTest.java
    jackrabbit/oak/trunk/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterImplTest.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.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/main/java/org/apache/jackrabbit/oak/security/user/UserProvider.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplEmptyTest.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProviderWithCacheTest.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PrincipalManagerDelegator.java
    jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java
    jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/GroupPrincipalWrapper.java
    jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalIteratorAdapter.java
    jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalManagerImpl.java
    jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalQueryManager.java
    jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java
    jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipalTest.java
    jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java

Modified: jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProvider.java Mon Aug 19 13:29:01 2019
@@ -324,7 +324,7 @@ class ExternalGroupPrincipalProvider imp
         }
 
         @Override
-        public boolean isMember(Principal member) {
+        public boolean isMember(@NotNull Principal member) {
             if (GroupPrincipals.isGroup(member)) {
                 return false;
             }
@@ -355,6 +355,7 @@ class ExternalGroupPrincipalProvider imp
             return false;
         }
 
+        @NotNull
         @Override
         public Enumeration<? extends Principal> members() {
             Result result = findPrincipals(getName(), true);

Modified: jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalGroupPrincipalProviderTest.java Mon Aug 19 13:29:01 2019
@@ -427,6 +427,7 @@ public class ExternalGroupPrincipalProvi
         ExternalGroupPrincipalProvider p = new ExternalGroupPrincipalProvider(root,
                 getSecurityProvider().getConfiguration(UserConfiguration.class), NamePathMapper.DEFAULT,
                 ImmutableMap.of(idp.getName(), new String[0])) {
+            @NotNull
             @Override
             public Iterator<? extends Principal> findPrincipals(@Nullable String nameHint, int searchType) {
                 return in.iterator();

Modified: jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeDefaultTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeDefaultTest.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeDefaultTest.java (original)
+++ jackrabbit/oak/trunk/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugExcludeDefaultTest.java Mon Aug 19 13:29:01 2019
@@ -27,6 +27,7 @@ import org.apache.jackrabbit.oak.spi.sec
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
 import org.apache.jackrabbit.oak.spi.security.principal.SystemPrincipal;
 import org.apache.jackrabbit.oak.spi.security.principal.SystemUserPrincipal;
+import org.jetbrains.annotations.NotNull;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -84,6 +85,7 @@ public class CugExcludeDefaultTest {
         Set<Principal> principals = new HashSet<>();
         principals.add(new PrincipalImpl("test"));
         principals.add(new ItemBasedPrincipal() {
+            @NotNull
             @Override
             public String getPath() {
                 return "/path";

Modified: jackrabbit/oak/trunk/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterImplTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterImplTest.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterImplTest.java (original)
+++ jackrabbit/oak/trunk/oak-authorization-principalbased/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/principalbased/impl/FilterImplTest.java Mon Aug 19 13:29:01 2019
@@ -105,6 +105,7 @@ public class FilterImplTest extends Abst
         Principal principal = getTestSystemUser().getPrincipal();
         assertFalse(filter.canHandle(Collections.singleton((AdminPrincipal) () -> principal.getName())));
         assertFalse(filter.canHandle(Collections.singleton((new ItemBasedPrincipal() {
+            @NotNull
             @Override
             public String getPath() throws RepositoryException {
                 return ((ItemBasedPrincipal) principal).getPath();
@@ -151,7 +152,7 @@ public class FilterImplTest extends Abst
     /**
      * Test that the filter can deal with principals that have been accessed with a different {@code NamePathMapper}.
      * This might actually occure with {@code AbstractAccessControlManager#hasPrivilege} and {@code AbstractAccessControlManager#getPrivileges},
-     * when a {@link PermissionProvider} is built from the principal set passed to the Jackrabbit API methods (and not from
+     * when a {@code PermissionProvider} is built from the principal set passed to the Jackrabbit API methods (and not from
      * principals obtained on the system level when populating the {@code Subject}.
      */
     @Test
@@ -301,6 +302,7 @@ public class FilterImplTest extends Abst
             this.name = name;
         }
 
+        @NotNull
         @Override
         public String getPath() throws RepositoryException {
             if (jcrPath != null) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AbstractGroupPrincipal.java Mon Aug 19 13:29:01 2019
@@ -61,7 +61,7 @@ abstract class AbstractGroupPrincipal ex
 
     //--------------------------------------------------------------< Group >---
     @Override
-    public boolean isMember(Principal principal) {
+    public boolean isMember(@NotNull Principal principal) {
         boolean isMember = false;
         try {
             // shortcut for everyone group -> avoid collecting all members
@@ -82,6 +82,7 @@ abstract class AbstractGroupPrincipal ex
         return isMember;
     }
 
+    @NotNull
     @Override
     public Enumeration<? extends Principal> members() {
         final Iterator<Authorizable> members;

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=1865457&r1=1865456&r2=1865457&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 Mon Aug 19 13:29:01 2019
@@ -22,6 +22,8 @@ import org.apache.jackrabbit.oak.namepat
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl;
 import org.jetbrains.annotations.NotNull;
 
+import javax.jcr.RepositoryException;
+
 /**
  * TreeBasedPrincipal...
  */
@@ -40,17 +42,20 @@ class TreeBasedPrincipal extends Princip
         this.path = oakPath;
     }
 
-    String getOakPath() {
+    @NotNull
+    String getOakPath() throws RepositoryException {
         return path;
     }
 
+    @NotNull
     NamePathMapper getNamePathMapper() {
         return pathMapper;
     }
 
     //-------------------------------------------------< ItemBasedPrincipal >---
+    @NotNull
     @Override
-    public String getPath() {
+    public String getPath() throws RepositoryException {
         return pathMapper.getJcrPath(path);
     }
 }
\ No newline at end of file

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=1865457&r1=1865456&r2=1865457&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 Mon Aug 19 13:29:01 2019
@@ -508,23 +508,24 @@ class UserPrincipalProvider implements P
             super(principalName, "", namePathMapper, root, config);
         }
 
-        @Nullable
+        @NotNull
         @Override
-        String getOakPath() {
-            String groupPath = getPath();
-            return (groupPath == null) ? null : getNamePathMapper().getOakPath(getPath());
+        String getOakPath() throws RepositoryException {
+            String oakPath = getNamePathMapper().getOakPath(getPath());
+            if (oakPath == null) {
+                throw new RepositoryException("Failed to retrieve path of group principal " + getName());
+            }
+            return oakPath;
         }
 
-        @Nullable
+        @NotNull
         @Override
-        public String getPath() {
-            try {
-                org.apache.jackrabbit.api.security.user.Group gr = getGroup();
-                return (gr == null) ? null : gr.getPath();
-            } catch (RepositoryException e) {
-                log.error("Failed to retrieve path from group principal: {}", e.getMessage());
-                return null;
+        public String getPath() throws RepositoryException {
+            org.apache.jackrabbit.api.security.user.Group gr = getGroup();
+            if (gr == null) {
+                throw new RepositoryException("Failed to retrieve path of group principal " + getName());
             }
+            return gr.getPath();
         }
 
         @Override

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=1865457&r1=1865456&r2=1865457&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 Mon Aug 19 13:29:01 2019
@@ -216,7 +216,12 @@ class UserProvider extends AuthorizableB
     @Nullable
     Tree getAuthorizableByPrincipal(@NotNull Principal principal) {
         if (principal instanceof TreeBasedPrincipal) {
-            return root.getTree(((TreeBasedPrincipal) principal).getOakPath());
+            try {
+                return root.getTree(((TreeBasedPrincipal) principal).getOakPath());
+            } catch (RepositoryException e) {
+                // getting oakpath fails -> try searching below
+                log.debug(e.getMessage());
+            }
         }
 
         // NOTE: in contrast to JR2 the extra shortcut for ID==principalName

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplEmptyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplEmptyTest.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplEmptyTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/security/user/ImpersonationImplEmptyTest.java Mon Aug 19 13:29:01 2019
@@ -43,10 +43,11 @@ public class ImpersonationImplEmptyTest
 
     final GroupPrincipal groupPrincipal = new GroupPrincipal() {
         @Override
-        public boolean isMember(Principal member) {
+        public boolean isMember(@NotNull Principal member) {
             throw new UnsupportedOperationException();
         }
 
+        @NotNull
         @Override
         public Enumeration<? extends Principal> members() {
             throw new UnsupportedOperationException();

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=1865457&r1=1865456&r2=1865457&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 Mon Aug 19 13:29:01 2019
@@ -46,6 +46,7 @@ import org.jetbrains.annotations.Nullabl
 import org.junit.Test;
 
 import javax.jcr.NoSuchWorkspaceException;
+import javax.jcr.RepositoryException;
 import javax.jcr.SimpleCredentials;
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginException;
@@ -327,7 +328,12 @@ public class UserPrincipalProviderWithCa
             assertEquals("org.apache.jackrabbit.oak.security.user.UserPrincipalProvider$CachedGroupPrincipal", className);
 
             assertTrue(p instanceof TreeBasedPrincipal);
-            assertNull(((TreeBasedPrincipal) p).getPath());
+            try {
+                ((TreeBasedPrincipal) p).getPath();
+                fail("RepositoryException expected");
+            } catch (RepositoryException e) {
+                // success
+            }
 
             GroupPrincipal principalGroup = (GroupPrincipal) p;
             assertFalse(principalGroup.isMember(getTestUser().getPrincipal()));

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PrincipalManagerDelegator.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PrincipalManagerDelegator.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PrincipalManagerDelegator.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/PrincipalManagerDelegator.java Mon Aug 19 13:29:01 2019
@@ -28,6 +28,7 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation;
 import org.apache.jackrabbit.oak.spi.security.principal.PrincipalQueryManager;
 import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * This implementation of {@code PrincipalManager} delegates back to a
@@ -46,7 +47,7 @@ public class PrincipalManagerDelegator i
     }
 
     @Override
-    public boolean hasPrincipal(final String principalName) {
+    public boolean hasPrincipal(@NotNull final String principalName) {
         return delegate.safePerform(new SessionOperation<Boolean>("hasPrincipal") {
             @NotNull
             @Override
@@ -56,8 +57,9 @@ public class PrincipalManagerDelegator i
         });
     }
 
+    @Nullable
     @Override
-    public Principal getPrincipal(final String principalName) {
+    public Principal getPrincipal(@NotNull final String principalName) {
         try {
             return delegate.performNullable(new SessionOperation<Principal>("getPrincipal") {
                 @Override
@@ -70,8 +72,9 @@ public class PrincipalManagerDelegator i
         }
     }
 
+    @NotNull
     @Override
-    public PrincipalIterator findPrincipals(final String simpleFilter) {
+    public PrincipalIterator findPrincipals(@Nullable final String simpleFilter) {
         return delegate.safePerform(new SessionOperation<PrincipalIterator>("findPrincipals") {
             @NotNull
             @Override
@@ -81,8 +84,9 @@ public class PrincipalManagerDelegator i
         });
     }
 
+    @NotNull
     @Override
-    public PrincipalIterator findPrincipals(final String simpleFilter, final int searchType) {
+    public PrincipalIterator findPrincipals(@Nullable final String simpleFilter, final int searchType) {
         return delegate.safePerform(new SessionOperation<PrincipalIterator>("findPrincipals") {
             @NotNull
             @Override
@@ -92,6 +96,7 @@ public class PrincipalManagerDelegator i
         });
     }
 
+    @NotNull
     @Override
     public PrincipalIterator getPrincipals(final int searchType) {
         return delegate.safePerform(new SessionOperation<PrincipalIterator>("getPrincipals") {
@@ -103,8 +108,9 @@ public class PrincipalManagerDelegator i
         });
     }
 
+    @NotNull
     @Override
-    public PrincipalIterator getGroupMembership(final Principal principal) {
+    public PrincipalIterator getGroupMembership(@NotNull final Principal principal) {
         return delegate.safePerform(new SessionOperation<PrincipalIterator>("getGroupMembership") {
             @NotNull
             @Override
@@ -114,6 +120,7 @@ public class PrincipalManagerDelegator i
         });
     }
 
+    @NotNull
     @Override
     public Principal getEveryone() {
         return delegate.safePerform(new SessionOperation<Principal>("getEveryone") {
@@ -125,8 +132,9 @@ public class PrincipalManagerDelegator i
         });
     }
 
+    @NotNull
     @Override
-    public PrincipalIterator findPrincipals(String simpleFilter, boolean fullText, int searchType, long offset, long limit) {
+    public PrincipalIterator findPrincipals(@Nullable String simpleFilter, boolean fullText, int searchType, long offset, long limit) {
         return delegate.safePerform(new SessionOperation<PrincipalIterator>("findPrincipals") {
             @NotNull
             @Override

Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipal.java Mon Aug 19 13:29:01 2019
@@ -22,6 +22,7 @@ import java.util.Enumeration;
 
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.JackrabbitPrincipal;
+import org.jetbrains.annotations.NotNull;
 
 /**
  * Built-in principal group that has every other principal as member.
@@ -57,10 +58,11 @@ public final class EveryonePrincipal imp
 
     //------------------------------------------------------< GroupPrincipal >---
     @Override
-    public boolean isMember(Principal member) {
+    public boolean isMember(@NotNull Principal member) {
         return !member.equals(this);
     }
 
+    @NotNull
     @Override
     public Enumeration<? extends Principal> members() {
         throw new UnsupportedOperationException("Not implemented.");

Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/GroupPrincipalWrapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/GroupPrincipalWrapper.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/GroupPrincipalWrapper.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/GroupPrincipalWrapper.java Mon Aug 19 13:29:01 2019
@@ -34,10 +34,11 @@ class GroupPrincipalWrapper extends Prin
     }
 
     @Override
-    public boolean isMember(Principal member) {
+    public boolean isMember(@NotNull Principal member) {
         return group.isMember(member);
     }
 
+    @NotNull
     @Override
     public Enumeration<? extends Principal> members() {
         return GroupPrincipals.transform(group.members());

Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalIteratorAdapter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalIteratorAdapter.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalIteratorAdapter.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalIteratorAdapter.java Mon Aug 19 13:29:01 2019
@@ -23,6 +23,7 @@ import java.util.Iterator;
 import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
 import org.apache.jackrabbit.commons.iterator.RangeIteratorAdapter;
 import org.apache.jackrabbit.commons.iterator.RangeIteratorDecorator;
+import org.jetbrains.annotations.NotNull;
 
 /**
  * Principal specific {@code RangeIteratorAdapter} implementing the
@@ -61,6 +62,7 @@ public class PrincipalIteratorAdapter ex
      *
      * @return next policy.
      */
+    @NotNull
     @Override
     public Principal nextPrincipal() {
         return (Principal) next();

Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalManagerImpl.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalManagerImpl.java Mon Aug 19 13:29:01 2019
@@ -79,8 +79,9 @@ public class PrincipalManagerImpl implem
         return everyone;
     }
 
+    @NotNull
     @Override
-    public PrincipalIterator findPrincipals(String simpleFilter, boolean fullText, int searchType, long offset, long limit) {
+    public PrincipalIterator findPrincipals(@Nullable String simpleFilter, boolean fullText, int searchType, long offset, long limit) {
         return new PrincipalIteratorAdapter(principalProvider.findPrincipals(simpleFilter, fullText, searchType, offset, limit));
     }
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalQueryManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalQueryManager.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalQueryManager.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/PrincipalQueryManager.java Mon Aug 19 13:29:01 2019
@@ -20,6 +20,8 @@ import java.security.Principal;
 
 import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
 import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
 import org.osgi.annotation.versioning.ProviderType;
 
 /**
@@ -49,5 +51,6 @@ public interface PrincipalQueryManager {
      * @return a <code>PrincipalIterator</code> over the <code>Principal</code>s
      * matching the given filter and search type.
      */
-    PrincipalIterator findPrincipals(String simpleFilter, boolean fullText, int searchType, long offset, long limit);
+    @NotNull
+    PrincipalIterator findPrincipals(@Nullable String simpleFilter, boolean fullText, int searchType, long offset, long limit);
 }

Modified: jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/principal/package-info.java Mon Aug 19 13:29:01 2019
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("1.7.0")
+@Version("1.7.1")
 package org.apache.jackrabbit.oak.spi.security.principal;
 
 import org.osgi.annotation.versioning.Version;

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipalTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipalTest.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipalTest.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/EveryonePrincipalTest.java Mon Aug 19 13:29:01 2019
@@ -21,6 +21,7 @@ import java.util.Enumeration;
 
 import org.apache.jackrabbit.api.security.principal.GroupPrincipal;
 import org.apache.jackrabbit.api.security.principal.JackrabbitPrincipal;
+import org.jetbrains.annotations.NotNull;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -130,10 +131,11 @@ public class EveryonePrincipalTest  {
     private class OtherEveryoneGroup extends OtherEveryone implements GroupPrincipal {
 
         @Override
-        public boolean isMember(Principal principal) {
+        public boolean isMember(@NotNull Principal principal) {
             return true;
         }
 
+        @NotNull
         @Override
         public Enumeration<? extends Principal> members() {
             throw new UnsupportedOperationException();

Modified: jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java?rev=1865457&r1=1865456&r2=1865457&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java (original)
+++ jackrabbit/oak/trunk/oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/principal/TestPrincipalProvider.java Mon Aug 19 13:29:01 2019
@@ -54,6 +54,7 @@ public final class TestPrincipalProvider
     public TestPrincipalProvider(String... principalNames) {
         this.exposesEveryone = true;
         this.principals = Maps.toMap(ImmutableSet.copyOf(principalNames), input -> new ItemBasedPrincipal() {
+            @NotNull
             @Override
             public String getPath() {
                 return "/path/to/principal/" + input;
@@ -175,10 +176,11 @@ public final class TestPrincipalProvider
         }
 
         @Override
-        public boolean isMember(Principal member) {
+        public boolean isMember(@NotNull Principal member) {
             throw new UnsupportedOperationException();
         }
 
+        @NotNull
         @Override
         public Enumeration<? extends Principal> members() {
             return members;