From 156d25a9702528847b7044b00f6676f49bc04559 Mon Sep 17 00:00:00 2001 From: Greg Solomon Date: Wed, 3 Apr 2024 10:33:11 -0400 Subject: [PATCH] Fix NPE in DefaultRoleService.doLoadUsersForDirectoryGroups --- CHANGELOG.md | 7 +++++++ .../io/xh/hoist/role/provided/DefaultRoleService.groovy | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 529fa4d7..8114d90a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 18.5.2 - 2024-04-03 + +### 🐞 Bug Fixes + +* Fixed bug in `DefaultRoleService.doLoadUsersForDirectoryGroups` where LDAP members with `null` + samAccountNames were not being filtered out, causing `NullPointerExceptions`. + ## 18.5.1 - 2024-03-08 ### ⚙️ Technical diff --git a/src/main/groovy/io/xh/hoist/role/provided/DefaultRoleService.groovy b/src/main/groovy/io/xh/hoist/role/provided/DefaultRoleService.groovy index b2c8aa5a..eef6058e 100644 --- a/src/main/groovy/io/xh/hoist/role/provided/DefaultRoleService.groovy +++ b/src/main/groovy/io/xh/hoist/role/provided/DefaultRoleService.groovy @@ -190,7 +190,9 @@ class DefaultRoleService extends BaseRoleService { ldapService .lookupGroupMembers(foundGroups) .each {name, members -> - ret[name] = members.collect(new HashSet()) { it.samaccountname.toLowerCase()} + ret[name] = members.collect(new HashSet()) { it.samaccountname?.toLowerCase() } + // Exclude members without a samaccountname (e.g. email-only contacts within a DL) + ret[name].remove(null) } return ret