fix: ensure the legacy admin username env can still be used (#32341)

closes: #32333

Signed-off-by: Steve Hawkins <shawkins@redhat.com>
This commit is contained in:
Steven Hawkins 2024-08-22 09:10:26 -04:00 committed by GitHub
parent 04d2126c73
commit c18a79bfe7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 8 deletions

View file

@ -25,7 +25,7 @@ import org.keycloak.quarkus.runtime.Environment;
import org.keycloak.quarkus.runtime.cli.command.AbstractNonServerCommand;
import org.keycloak.quarkus.runtime.configuration.Configuration;
import org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider;
import org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper;
import org.keycloak.quarkus.runtime.configuration.PropertyMappingInterceptor;
import org.keycloak.quarkus.runtime.integration.QuarkusKeycloakSessionFactory;
import org.keycloak.quarkus.runtime.integration.QuarkusPlatform;
import org.keycloak.services.ServicesLogger;
@ -95,13 +95,18 @@ public class QuarkusKeycloakApplication extends KeycloakApplication {
}
private String getOption(String option, String envVar) {
return Configuration.getOptionalKcValue(option).orElseGet(() -> {
String value = System.getenv(envVar);
if (value != null) {
ServicesLogger.LOGGER.usingDeprecatedEnvironmentVariable(envVar, Configuration.toEnvVarFormat(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + option));
}
return value;
});
PropertyMappingInterceptor.disable(); // disable default handling
try {
return Configuration.getOptionalKcValue(option).orElseGet(() -> {
String value = System.getenv(envVar);
if (value != null) {
ServicesLogger.LOGGER.usingDeprecatedEnvironmentVariable(envVar, Configuration.toEnvVarFormat(MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX + option));
}
return value;
});
} finally {
PropertyMappingInterceptor.enable();
}
}
public boolean createTemporaryMasterRealmAdminUser(String adminUserName, String adminPassword, /*Integer adminExpiration,*/ KeycloakSession session) {

View file

@ -68,6 +68,13 @@ public class BuildAndStartDistTest {
cliResult.assertStarted();
}
@Test
@WithEnvVars({"KEYCLOAK_ADMIN", "oldadmin123", "KEYCLOAK_ADMIN_PASSWORD", "oldadmin123"})
@Launch({"start-dev"})
void testCreateLegacyAdmin(KeycloakDistribution dist, LaunchResult result) {
assertAdminCreation(dist, result, "oldadmin123", "oldadmin123", "oldadmin123");
}
@Test
@WithEnvVars({"KC_BOOTSTRAP_ADMIN_USERNAME", "admin123", "KC_BOOTSTRAP_ADMIN_PASSWORD", "admin123"})
@Launch({"start-dev"})