Add null check for OrganizationProvider to avoid a NPE when the feature "organization" is disabled

Closes #39267

Signed-off-by: leh1imb <christoph.leistert@bosch.com>
This commit is contained in:
leh1imb 2025-04-28 15:09:06 +02:00 committed by Pedro Igor
parent 68fc5aa44b
commit 53bd88c7ef

View File

@ -19,17 +19,16 @@ package org.keycloak.email.freemarker.beans;
import org.jboss.logging.Logger;
import org.keycloak.forms.login.freemarker.model.OrganizationBean;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.OrganizationModel;
import org.keycloak.models.UserModel;
import org.keycloak.organization.OrganizationProvider;
import org.keycloak.representations.userprofile.config.UPAttribute;
import org.keycloak.representations.userprofile.config.UPConfig;
import org.keycloak.userprofile.UserProfileProvider;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
/**
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
@ -39,7 +38,7 @@ public class ProfileBean {
private static final Logger logger = Logger.getLogger(ProfileBean.class);
private UserModel user;
private final UserModel user;
private final KeycloakSession session;
private final Map<String, String> attributes = new HashMap<>();
private List<OrganizationBean> organizations;
@ -90,9 +89,15 @@ public class ProfileBean {
public List<OrganizationBean> getOrganizations() {
if (organizations == null) {
organizations = session.getProvider(OrganizationProvider.class).getByMember(user)
.map(o -> new OrganizationBean(o, user))
.toList();
final var organizationsProvider = session.getProvider(OrganizationProvider.class);
if (organizationsProvider == null) {
organizations = Collections.emptyList();
}
else {
organizations = organizationsProvider.getByMember(user)
.map(o -> new OrganizationBean(o, user))
.toList();
}
}
return organizations;
}