From a1df055d7a220349f60b7e92636ffcd9797fb526 Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 28 May 2018 20:48:28 -0700 Subject: [PATCH] Auto-configure security for peer Cache instance based server nodes. --- ...dCloudSecurityContextIntegrationTests.java | 24 ++++++----------- ...dLocalSecurityContextIntegrationTests.java | 27 +++++++------------ ...lication-security-local-client.properties} | 2 -- ...plication-security-local-server.properties | 4 +++ 4 files changed, 22 insertions(+), 35 deletions(-) rename geode-spring-boot-starter/src/test/resources/{application-security-local.properties => application-security-local-client.properties} (57%) create mode 100644 geode-spring-boot-starter/src/test/resources/application-security-local-server.properties diff --git a/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/cloud/AutoConfiguredCloudSecurityContextIntegrationTests.java b/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/cloud/AutoConfiguredCloudSecurityContextIntegrationTests.java index 2bc017d3..32f36f21 100644 --- a/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/cloud/AutoConfiguredCloudSecurityContextIntegrationTests.java +++ b/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/cloud/AutoConfiguredCloudSecurityContextIntegrationTests.java @@ -21,17 +21,14 @@ import java.util.Properties; import org.junit.BeforeClass; import org.junit.runner.RunWith; +import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.data.geode.autoconfigure.SslAutoConfiguration; import org.springframework.boot.data.geode.security.auth.AbstractAutoConfiguredSecurityContextIntegrationTests; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; -import org.springframework.context.annotation.PropertySource; import org.springframework.core.io.ClassPathResource; import org.springframework.data.gemfire.config.annotation.CacheServerApplication; import org.springframework.data.gemfire.config.annotation.EnableLocator; import org.springframework.data.gemfire.config.annotation.EnableLogging; -import org.springframework.data.gemfire.config.annotation.EnableSecurity; import org.springframework.test.context.junit4.SpringRunner; /** @@ -42,11 +39,12 @@ import org.springframework.test.context.junit4.SpringRunner; * @see java.security.Principal * @see org.junit.Test * @see org.apache.geode.cache.GemFireCache + * @see org.springframework.boot.SpringApplication * @see org.springframework.boot.autoconfigure.SpringBootApplication - * @see org.springframework.boot.data.geode.autoconfigure.SecurityAutoConfiguration + * @see org.springframework.boot.data.geode.autoconfigure.ClientSecurityAutoConfiguration + * @see org.springframework.boot.data.geode.autoconfigure.PeerSecurityAutoConfiguration * @see org.springframework.boot.data.geode.security.auth.AbstractAutoConfiguredSecurityContextIntegrationTests * @see org.springframework.boot.test.context.SpringBootTest - * @see org.springframework.context.annotation.AnnotationConfigApplicationContext * @see org.springframework.data.gemfire.config.annotation.CacheServerApplication * @see org.springframework.data.gemfire.config.annotation.EnableLocator * @see org.springframework.data.gemfire.config.annotation.EnableSecurity @@ -76,28 +74,22 @@ public class AutoConfiguredCloudSecurityContextIntegrationTests @BeforeClass public static void startGemFireServer() throws IOException { - startGemFireServer(GemFireServerConfiguration.class); + startGemFireServer(GemFireServerConfiguration.class, "-Dspring.profiles.active=security-cloud"); loadVcapApplicationProperties(); } + @SpringBootApplication @EnableLogging(logLevel = GEMFIRE_LOG_LEVEL) - @SpringBootApplication(exclude = SslAutoConfiguration.class) static class GemFireClientConfiguration extends BaseGemFireClientConfiguration { } + @SpringBootApplication @CacheServerApplication(name = "AutoConfiguredCloudSecurityContextIntegrationTests", logLevel = GEMFIRE_LOG_LEVEL, useBeanFactoryLocator = true) @EnableLocator(port = 55221) - @EnableSecurity(securityManagerClassName = - "org.springframework.boot.data.geode.security.support.SecurityManagerProxy") - @PropertySource(name = "security-cloud", value = "application-security-cloud.properties") static class GemFireServerConfiguration extends BaseGemFireServerConfiguration { public static void main(String[] args) { - - AnnotationConfigApplicationContext applicationContext = - new AnnotationConfigApplicationContext(GemFireServerConfiguration.class); - - applicationContext.registerShutdownHook(); + SpringApplication.run(GemFireServerConfiguration.class, args); } } } diff --git a/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/local/AutoConfiguredLocalSecurityContextIntegrationTests.java b/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/local/AutoConfiguredLocalSecurityContextIntegrationTests.java index b8871321..5e9c8002 100644 --- a/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/local/AutoConfiguredLocalSecurityContextIntegrationTests.java +++ b/geode-spring-boot-starter/src/test/java/org/springframework/boot/data/geode/security/auth/local/AutoConfiguredLocalSecurityContextIntegrationTests.java @@ -20,16 +20,13 @@ import java.io.IOException; import org.junit.BeforeClass; import org.junit.runner.RunWith; +import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.data.geode.autoconfigure.SslAutoConfiguration; import org.springframework.boot.data.geode.security.auth.AbstractAutoConfiguredSecurityContextIntegrationTests; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.PropertySource; import org.springframework.data.gemfire.config.annotation.CacheServerApplication; import org.springframework.data.gemfire.config.annotation.EnableLogging; -import org.springframework.data.gemfire.config.annotation.EnableSecurity; import org.springframework.data.gemfire.tests.integration.config.ClientServerIntegrationTestsConfiguration; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @@ -39,14 +36,14 @@ import org.springframework.test.context.junit4.SpringRunner; * authentication/authorization in a local, non-managed context. * * @author John Blum - * @see java.security.Principal * @see org.junit.Test * @see org.apache.geode.cache.GemFireCache + * @see org.springframework.boot.SpringApplication * @see org.springframework.boot.autoconfigure.SpringBootApplication - * @see org.springframework.boot.data.geode.autoconfigure.SecurityAutoConfiguration + * @see org.springframework.boot.data.geode.autoconfigure.ClientSecurityAutoConfiguration + * @see org.springframework.boot.data.geode.autoconfigure.PeerSecurityAutoConfiguration * @see org.springframework.boot.data.geode.security.auth.AbstractAutoConfiguredSecurityContextIntegrationTests * @see org.springframework.boot.test.context.SpringBootTest - * @see org.springframework.context.annotation.AnnotationConfigApplicationContext * @see org.springframework.context.annotation.Import * @see org.springframework.data.gemfire.config.annotation.CacheServerApplication * @see org.springframework.data.gemfire.config.annotation.EnableSecurity @@ -55,7 +52,7 @@ import org.springframework.test.context.junit4.SpringRunner; * @see org.springframework.test.context.junit4.SpringRunner * @since 1.0.0 */ -@ActiveProfiles("security-local") +@ActiveProfiles("security-local-client") @RunWith(SpringRunner.class) @SpringBootTest(classes = AutoConfiguredLocalSecurityContextIntegrationTests.GemFireClientConfiguration.class, webEnvironment = SpringBootTest.WebEnvironment.NONE) @@ -67,26 +64,22 @@ public class AutoConfiguredLocalSecurityContextIntegrationTests @BeforeClass public static void startGemFireServer() throws IOException { - startGemFireServer(GemFireServerConfiguration.class); + startGemFireServer(GemFireServerConfiguration.class, + "-Dspring.profiles.active=security-local-server"); } + @SpringBootApplication @EnableLogging(logLevel = GEMFIRE_LOG_LEVEL) @Import(ClientServerIntegrationTestsConfiguration.class) - @SpringBootApplication(exclude = SslAutoConfiguration.class) static class GemFireClientConfiguration extends BaseGemFireClientConfiguration { } + @SpringBootApplication @CacheServerApplication(name = "AutoConfiguredLocalSecurityContextIntegrationTests", logLevel = GEMFIRE_LOG_LEVEL, useBeanFactoryLocator = true) - @EnableSecurity(securityManagerClassName = "org.springframework.boot.data.geode.security.support.SecurityManagerProxy") - @PropertySource(name = "security-local", value="application-security-local.properties") static class GemFireServerConfiguration extends BaseGemFireServerConfiguration { public static void main(String[] args) { - - AnnotationConfigApplicationContext applicationContext = - new AnnotationConfigApplicationContext(GemFireServerConfiguration.class); - - applicationContext.registerShutdownHook(); + SpringApplication.run(GemFireServerConfiguration.class, args); } } } diff --git a/geode-spring-boot-starter/src/test/resources/application-security-local.properties b/geode-spring-boot-starter/src/test/resources/application-security-local-client.properties similarity index 57% rename from geode-spring-boot-starter/src/test/resources/application-security-local.properties rename to geode-spring-boot-starter/src/test/resources/application-security-local-client.properties index 34cbbcf4..52b6a844 100644 --- a/geode-spring-boot-starter/src/test/resources/application-security-local.properties +++ b/geode-spring-boot-starter/src/test/resources/application-security-local-client.properties @@ -2,5 +2,3 @@ spring.data.gemfire.security.username=ghostrider spring.data.gemfire.security.password=p@55w0rd -security.context.username.property=${spring.data.gemfire.security.username} -security.context.password.property=${spring.data.gemfire.security.password} diff --git a/geode-spring-boot-starter/src/test/resources/application-security-local-server.properties b/geode-spring-boot-starter/src/test/resources/application-security-local-server.properties new file mode 100644 index 00000000..fec1b9e8 --- /dev/null +++ b/geode-spring-boot-starter/src/test/resources/application-security-local-server.properties @@ -0,0 +1,4 @@ +# Spring Boot application.properties for testing Apache Geode/Pivotal GemFire Security in a local context. + +security.context.username.property=ghostrider +security.context.password.property=p@55w0rd