Fix matchRole lookup to include group-inherited and composite roles #25

Merged
stb merged 2 commits from fix-role-membership into main 2026-07-18 14:14:44 +02:00
Showing only changes of commit db302eebb4 - Show all commits

Remove superflous comment
All checks were successful
/ Verify (pull_request) Successful in 48s
/ Verify (push) Successful in 49s

Stefan Bethke 2026-07-18 14:13:39 +02:00

View file

@ -119,9 +119,6 @@ public class AttributeEndpointsResourceProvider implements RealmResourceProvider
.toList(); .toList();
UserProvider userProvider = session.users(); UserProvider userProvider = session.users();
// getRoleMembersStream only returns users with matchRole assigned directly; it misses
// users who have the role via group membership (incl. parent groups) or composite roles.
// hasRole() resolves the role the same way authUser.hasRole(authRole) does above.
Stream<UserModel> users = userProvider.searchForUserStream(realm, Map.of()) Stream<UserModel> users = userProvider.searchForUserStream(realm, Map.of())
.filter(user -> user.hasRole(matchRole)); .filter(user -> user.hasRole(matchRole));
stb marked this conversation as resolved Outdated

this comment isn't that useful, after this PR is merged, as it references old code. Please write such information in the PR discussion

this comment isn't that useful, after this PR is merged, as it references old code. Please write such information in the PR discussion