This is an automated email from the ASF dual-hosted git repository.

angela pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new c71dd30383 OAK-11627: Fix NPE on isInheritedMember (#2205)
c71dd30383 is described below

commit c71dd30383001e215e85c8c57d32e73ffb67cec2
Author: Alejandro Moratinos <[email protected]>
AuthorDate: Wed Apr 30 10:06:41 2025 +0200

    OAK-11627: Fix NPE on isInheritedMember (#2205)
---
 .../external/impl/principal/AutoMembershipPrincipals.java         | 5 ++++-
 .../external/impl/principal/AutoMembershipPrincipalsTest.java     | 8 ++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
index fec44266bf..da662638fa 100644
--- 
a/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
+++ 
b/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java
@@ -137,7 +137,10 @@ final class AutoMembershipPrincipals {
         }
 
         // to test for inherited membership collect automembership-ids and 
loop auto-membership groups
-        Set<String> automembershipIds = new 
HashSet<>(Arrays.asList(autoMembershipMapping.get(idpName)));
+        Set<String> automembershipIds = new HashSet<>();
+        if (autoMembershipMapping.containsKey(idpName)) {
+            
automembershipIds.addAll(Arrays.asList(autoMembershipMapping.get(idpName)));
+        }
         AutoMembershipConfig config = autoMembershipConfigMap.get(idpName);
         if (config != null) {
             automembershipIds.addAll(config.getAutoMembership(authorizable));
diff --git 
a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipalsTest.java
 
b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipalsTest.java
index 2ebcb232d5..ce5ad4d718 100644
--- 
a/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipalsTest.java
+++ 
b/oak-auth-external/src/test/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipalsTest.java
@@ -54,6 +54,8 @@ import static org.mockito.Mockito.when;
 
 public class AutoMembershipPrincipalsTest extends AbstractAutoMembershipTest {
     
+    private static final String IDP_NOT_MAPPED = "idp4";
+    
     private AutoMembershipPrincipals amp;
     private final Authorizable authorizable = mock(Authorizable.class);
     
@@ -368,6 +370,12 @@ public class AutoMembershipPrincipalsTest extends 
AbstractAutoMembershipTest {
         nested.addMember(testGroup);
         assertFalse(amp.isInheritedMember(IDP_VALID_AM, nested, authorizable));
     }
+
+    @Test
+    public void testNotMappedIsNotInheritedMember() throws Exception {
+        Group testGroup = getTestGroup();
+        assertFalse(amp.isInheritedMember(IDP_NOT_MAPPED, testGroup, 
authorizable));
+    }
     
     @Test
     public void testGetMembersFromAutoMembershipConfig() {

Reply via email to