in sources/src/main/java/com/google/solutions/jitaccess/web/EnvironmentRegistry.java [44:86]
public EnvironmentRegistry(
@NotNull Collection<EnvironmentConfiguration> environments,
@NotNull GroupMapping groupMapping,
@NotNull CloudIdentityGroupsClient groupsClient,
@NotNull Executor executor,
@NotNull Options options,
@NotNull Logger logger
) {
//
// Initialize provisioners for each environment.
//
this.environments = environments.stream()
.map(cfg -> {
//
// Create a CRM client that uses this environment's credential
// (as opposed to the application credential).
//
var crmClient = new ResourceManagerClient(
cfg.resourceCredentials(),
options.httpTransportOptions());
var provisioner = new Provisioner(
cfg.name(),
groupMapping,
groupsClient,
crmClient,
executor,
logger);
return (Environment) new Environment(
cfg.name(),
cfg.description(),
provisioner,
options.cacheDuration()
) {
@Override
public PolicyDocumentSource loadPolicy() {
return cfg.loadPolicy();
}
};
})
.toList();
}