Fix #3047: OpenMetadata Server fails to run when updating config from Environment Variable (#3049)

This commit is contained in:
Sriharsha Chintalapani 2022-03-01 11:10:17 -08:00 committed by GitHub
parent c65cdbb6ae
commit 58df9f110e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,6 +31,7 @@ import org.openmetadata.catalog.Entity;
import org.openmetadata.catalog.entity.teams.User;
import org.openmetadata.catalog.exception.EntityNotFoundException;
import org.openmetadata.catalog.jdbi3.CollectionDAO;
import org.openmetadata.catalog.jdbi3.RoleRepository;
import org.openmetadata.catalog.jdbi3.UserRepository;
import org.openmetadata.catalog.resources.teams.UserResource;
import org.openmetadata.catalog.security.policyevaluator.PolicyEvaluator;
@ -47,6 +48,7 @@ public class DefaultAuthorizer implements Authorizer {
private String principalDomain;
private UserRepository userRepository;
private RoleRepository roleRepository;
private PolicyEvaluator policyEvaluator;
private static final String FIELDS_PARAM = "roles,teams";
@ -60,6 +62,10 @@ public class DefaultAuthorizer implements Authorizer {
LOG.debug("Admin users: {}", adminUsers);
CollectionDAO collectionDAO = dbi.onDemand(CollectionDAO.class);
this.userRepository = new UserRepository(collectionDAO);
// RoleRepository needs to be instantiated for Entity.DAO_MAP to populated.
// As we create default admin/bots we need to have RoleRepository available in DAO_MAP.
// This needs to be handled better in future releases.
this.roleRepository = new RoleRepository(collectionDAO);
mayBeAddAdminUsers();
mayBeAddBotUsers();
this.policyEvaluator = PolicyEvaluator.getInstance();