Guard against NPE when fetching users associated with user policies.
Closes #28915 Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
This commit is contained in:
parent
ceed7bc120
commit
52c9e440d6
1 changed files with 7 additions and 1 deletions
|
@ -23,6 +23,7 @@ import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -119,7 +120,12 @@ public class UserPolicyProviderFactory implements PolicyProviderFactory<UserPoli
|
||||||
UserProvider userProvider = authorizationProvider.getKeycloakSession().users();
|
UserProvider userProvider = authorizationProvider.getKeycloakSession().users();
|
||||||
RealmModel realm = authorizationProvider.getRealm();
|
RealmModel realm = authorizationProvider.getRealm();
|
||||||
|
|
||||||
config.put("users", JsonSerialization.writeValueAsString(userRep.getUsers().stream().map(id -> userProvider.getUserById(realm, id).getUsername()).collect(Collectors.toList())));
|
config.put("users", JsonSerialization.writeValueAsString(userRep.getUsers().stream()
|
||||||
|
.map(id -> {
|
||||||
|
UserModel user = userProvider.getUserById(realm, id);
|
||||||
|
return user != null ? user.getUsername() : null;
|
||||||
|
})
|
||||||
|
.filter(Objects::nonNull).collect(Collectors.toList())));
|
||||||
} catch (IOException cause) {
|
} catch (IOException cause) {
|
||||||
throw new RuntimeException("Failed to export user policy [" + policy.getName() + "]", cause);
|
throw new RuntimeException("Failed to export user policy [" + policy.getName() + "]", cause);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue