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.cli.command.AbstractNonServerCommand;
import org.keycloak.quarkus.runtime.configuration.Configuration; import org.keycloak.quarkus.runtime.configuration.Configuration;
import org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider; 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.QuarkusKeycloakSessionFactory;
import org.keycloak.quarkus.runtime.integration.QuarkusPlatform; import org.keycloak.quarkus.runtime.integration.QuarkusPlatform;
import org.keycloak.services.ServicesLogger; import org.keycloak.services.ServicesLogger;
@ -95,6 +95,8 @@ public class QuarkusKeycloakApplication extends KeycloakApplication {
} }
private String getOption(String option, String envVar) { private String getOption(String option, String envVar) {
PropertyMappingInterceptor.disable(); // disable default handling
try {
return Configuration.getOptionalKcValue(option).orElseGet(() -> { return Configuration.getOptionalKcValue(option).orElseGet(() -> {
String value = System.getenv(envVar); String value = System.getenv(envVar);
if (value != null) { if (value != null) {
@ -102,6 +104,9 @@ public class QuarkusKeycloakApplication extends KeycloakApplication {
} }
return value; return value;
}); });
} finally {
PropertyMappingInterceptor.enable();
}
} }
public boolean createTemporaryMasterRealmAdminUser(String adminUserName, String adminPassword, /*Integer adminExpiration,*/ KeycloakSession session) { public boolean createTemporaryMasterRealmAdminUser(String adminUserName, String adminPassword, /*Integer adminExpiration,*/ KeycloakSession session) {

View file

@ -68,6 +68,13 @@ public class BuildAndStartDistTest {
cliResult.assertStarted(); 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 @Test
@WithEnvVars({"KC_BOOTSTRAP_ADMIN_USERNAME", "admin123", "KC_BOOTSTRAP_ADMIN_PASSWORD", "admin123"}) @WithEnvVars({"KC_BOOTSTRAP_ADMIN_USERNAME", "admin123", "KC_BOOTSTRAP_ADMIN_PASSWORD", "admin123"})
@Launch({"start-dev"}) @Launch({"start-dev"})