[
https://issues.apache.org/jira/browse/OAK-11627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17940300#comment-17940300
]
Alejandro Moratinos commented on OAK-11627:
-------------------------------------------
Created a PR to check for existing key preventing the null pointer exception
that could occur in the case described
> NullPointerException in AutoMemberhipPrincipals
> -----------------------------------------------
>
> Key: OAK-11627
> URL: https://issues.apache.org/jira/browse/OAK-11627
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: auth-external
> Affects Versions: 1.76.0
> Reporter: Alejandro Moratinos
> Assignee: Alejandro Moratinos
> Priority: Major
>
> When there are 2 identity providers configured, one with dynamicMembership
> enabled and another one with dynamicMembership disabled a null pointer
> exception could happen while checking if an authorizable is member of a group
> This happens because CompositeProvider in DynamicMembershipTracker uses each
> provider to checks if [it the user belongs to a
> group|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/DynamicMembershipTracker.java#L108-L115]
> Then when AutomembershipPrincipals is called for a provider not using
> dynamicMembership throws a NullPointerException on
> [isInheritedMember|https://github.com/apache/jackrabbit-oak/blob/jackrabbit-oak-1.76.0/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/AutoMembershipPrincipals.java]
>
>
> {code:java}
> // Trace reproduced using a local instance
> Caused by: java.lang.NullPointerException: null at
> java.base/java.util.Objects.requireNonNull(Objects.java:222) at
> java.base/java.util.Arrays$ArrayList.<init>(Arrays.java:4323) at
> java.base/java.util.Arrays.asList(Arrays.java:4310) at
> org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal.AutoMembershipPrincipals.isInheritedMember(AutoMembershipPrincipals.java:137)
> [org.apache.jackrabbit.oak-auth-external:1.75.0.SNAPSHOT] at
> org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal.AutoMembershipProvider.isMember(AutoMembershipProvider.java:130)
> [org.apache.jackrabbit.oak-auth-external:1.75.0.SNAPSHOT] at
> org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal.AutoMembershipProvider.isMember(AutoMembershipProvider.java:124)
> [org.apache.jackrabbit.oak-auth-external:1.75.0.SNAPSHOT] at
> org.apache.jackrabbit.oak.security.user.DynamicMembershipTracker$CompositeProvider.isMember(DynamicMembershipTracker.java:110)
> [org.apache.jackrabbit.oak-core:1.75.0.SNAPSHOT] {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)