diff --git a/src/main/java/sh/libre/scim/core/UserAdapter.java b/src/main/java/sh/libre/scim/core/UserAdapter.java index fac1f99665be9bb4afcc2f3289a0b87a390f5580..1aac599ec5651b1e7b7c4e5e6121194a69aeeec4 100644 --- a/src/main/java/sh/libre/scim/core/UserAdapter.java +++ b/src/main/java/sh/libre/scim/core/UserAdapter.java @@ -102,8 +102,21 @@ public class UserAdapter extends Adapter<UserModel, UserResource> { .forEach(r -> rolesSet.add(r)); // Bug when new user. try { - user.getRoleMappingsStream().filter((r) -> r.getFirstAttribute("scim").equals("true")) - .map((r) -> r.getName()).forEach(r -> rolesSet.add(r)); + var roleStream = user.getRoleMappingsStream(); + if (rolesSet == null) { + LOGGER.error("role stream is null"); + } + roleStream.filter((r) -> { + var attr = r.getFirstAttribute("scim"); + if (attr == null) { + LOGGER.debug("attribute is null"); + return false; + } + return attr.equals("true"); + }).map((r) -> r.getName()).forEach(r -> rolesSet.add(r)); + + // user.getRoleMappingsStream().filter((r) -> r.getFirstAttribute("scim").equals("true")) + // .map((r) -> r.getName()).forEach(r -> rolesSet.add(r)); } catch (Exception e) { LOGGER.error(e); }