From 23353b630e9542324a32ad58b2aa887d884c5c51 Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 28 May 2018 17:41:29 -0700 Subject: [PATCH] Add capability to disable Environment post processing for Security based on System property. --- .../autoconfigure/SecurityAutoConfiguration.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/SecurityAutoConfiguration.java b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/SecurityAutoConfiguration.java index c627c1ce..7d5209a0 100644 --- a/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/SecurityAutoConfiguration.java +++ b/geode-spring-boot-starter/src/main/java/org/springframework/boot/data/geode/autoconfigure/SecurityAutoConfiguration.java @@ -65,6 +65,9 @@ import org.springframework.data.gemfire.config.annotation.support.AutoConfigured @SuppressWarnings("unused") public class SecurityAutoConfiguration { + public static final String SECURITY_CLOUD_ENVIRONMENT_POST_PROCESSOR_DISABLED_PROPERTY = + "spring.boot.data.geode.security.auth.environment.post-processor.disabled"; + private static final String CLOUD_CACHE_PROPERTY_SOURCE_NAME = "cloudcache-security"; private static final String MANAGEMENT_HTTP_HOST_PROPERTY = "spring.data.gemfire.management.http.host"; @@ -87,6 +90,7 @@ public class SecurityAutoConfiguration { public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { Optional.of(environment) + .filter(this::isEnabled) .filter(this::isCloudFoundryEnvironment) .ifPresent(env -> { @@ -109,6 +113,14 @@ public class SecurityAutoConfiguration { return Optional.ofNullable(environment).filter(CloudPlatform.CLOUD_FOUNDRY::isActive).isPresent(); } + private boolean isDisabled(Environment environment) { + return Boolean.getBoolean(SECURITY_CLOUD_ENVIRONMENT_POST_PROCESSOR_DISABLED_PROPERTY); + } + + private boolean isEnabled(Environment environment) { + return !isDisabled(environment); + } + private boolean isSecurityPropertiesSet(Environment environment) { return environment.containsProperty(SECURITY_USERNAME_PROPERTY) && environment.containsProperty(SECURITY_PASSWORD_PROPERTY);