mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-09 15:02:05 -03:30
Unable to configure TLS reloading in Keycloak version 26.2.0 or later (#40790)
Closes #40713 Signed-off-by: Martin Bartoš <mabartos@redhat.com> Co-authored-by: Steve Hawkins <shawkins@redhat.com>
This commit is contained in:
parent
2b44c5676f
commit
664827de98
@ -93,8 +93,7 @@ public final class HttpPropertyMappers {
|
||||
.build(),
|
||||
fromOption(HttpOptions.HTTPS_CERTIFICATES_RELOAD_PERIOD)
|
||||
.to("quarkus.http.ssl.certificate.reload-period")
|
||||
// -1 means no reload
|
||||
.transformer((value, context) -> "-1".equals(value) ? null : value)
|
||||
.transformer(HttpPropertyMappers::transformNegativeReloadPeriod)
|
||||
.paramLabel("reload period")
|
||||
.build(),
|
||||
fromOption(HttpOptions.HTTPS_CERTIFICATE_FILE)
|
||||
@ -178,6 +177,11 @@ public final class HttpPropertyMappers {
|
||||
return isHttpEnabled(value) ? "enabled" : "disabled";
|
||||
}
|
||||
|
||||
static String transformNegativeReloadPeriod(String value, ConfigSourceInterceptorContext context) {
|
||||
// -1 means no reload
|
||||
return "-1".equals(value) ? null : value;
|
||||
}
|
||||
|
||||
private static boolean isHttpEnabled(String value) {
|
||||
if (Environment.isDevMode() || Environment.isNonServerMode()) {
|
||||
return true;
|
||||
|
||||
@ -72,8 +72,7 @@ public class ManagementPropertyMappers {
|
||||
fromOption(ManagementOptions.HTTPS_MANAGEMENT_CERTIFICATES_RELOAD_PERIOD)
|
||||
.mapFrom(HttpOptions.HTTPS_CERTIFICATES_RELOAD_PERIOD)
|
||||
.to("quarkus.management.ssl.certificate.reload-period")
|
||||
// -1 means no reload
|
||||
.transformer((value, context) -> "-1".equals(value) ? null : value)
|
||||
.transformer(HttpPropertyMappers::transformNegativeReloadPeriod)
|
||||
.paramLabel("reload period")
|
||||
.build(),
|
||||
fromOption(ManagementOptions.HTTPS_MANAGEMENT_CERTIFICATE_FILE)
|
||||
|
||||
@ -258,7 +258,8 @@ public class PropertyMapper<T> {
|
||||
String mappedValue = value;
|
||||
|
||||
boolean mapped = false;
|
||||
var theMapper = parentValue ? this.parentMapper : this.mapper;
|
||||
// use parent mapper/transformer when no mapper is explicitly specified in .mapFrom()
|
||||
var theMapper = parentValue && parentMapper != null ? this.parentMapper : this.mapper;
|
||||
if (theMapper != null && (!name.equals(getFrom()) || parentValue)) {
|
||||
mappedValue = theMapper.map(getNamedProperty().orElse(null), value, context);
|
||||
mapped = true;
|
||||
|
||||
@ -127,10 +127,13 @@ public class PicocliTest extends AbstractConfigurationTest {
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertEquals("1h",
|
||||
nonRunningPicocli.config.getConfigValue("quarkus.http.ssl.certificate.reload-period").getValue());
|
||||
assertEquals("1h",
|
||||
nonRunningPicocli.config.getConfigValue("quarkus.management.ssl.certificate.reload-period").getValue());
|
||||
|
||||
nonRunningPicocli = pseudoLaunch("start-dev", "--https-certificates-reload-period=-1");
|
||||
assertEquals(CommandLine.ExitCode.OK, nonRunningPicocli.exitCode);
|
||||
assertNull(nonRunningPicocli.config.getConfigValue("quarkus.http.ssl.certificate.reload-period").getValue());
|
||||
assertNull(nonRunningPicocli.config.getConfigValue("quarkus.management.ssl.certificate.reload-period").getValue());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -504,11 +504,23 @@ public class ConfigurationTest extends AbstractConfigurationTest {
|
||||
@Test
|
||||
public void testReloadPeriod() {
|
||||
ConfigArgsConfigSource.setCliArgs("");
|
||||
assertEquals("1h", createConfig().getConfigValue("quarkus.http.ssl.certificate.reload-period").getValue());
|
||||
initConfig();
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.http.ssl.certificate.reload-period", "1h",
|
||||
"quarkus.management.ssl.certificate.reload-period", "1h"
|
||||
));
|
||||
|
||||
ConfigArgsConfigSource.setCliArgs("--https-certificates-reload-period=-1");
|
||||
assertNull(createConfig().getConfigValue("quarkus.http.ssl.certificate.reload-period").getValue());
|
||||
initConfig();
|
||||
assertExternalConfigNull("quarkus.http.ssl.certificate.reload-period");
|
||||
assertExternalConfigNull("quarkus.management.ssl.certificate.reload-period");
|
||||
|
||||
ConfigArgsConfigSource.setCliArgs("--https-certificates-reload-period=2h");
|
||||
assertEquals("2h", createConfig().getConfigValue("quarkus.http.ssl.certificate.reload-period").getValue());
|
||||
initConfig();
|
||||
assertExternalConfig(Map.of(
|
||||
"quarkus.http.ssl.certificate.reload-period", "2h",
|
||||
"quarkus.management.ssl.certificate.reload-period", "2h"
|
||||
));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user