Auto-configure security for peer Cache instance based server nodes.

This commit is contained in:
John Blum
2018-05-28 20:48:28 -07:00
parent 6367527ff6
commit a1df055d7a
4 changed files with 22 additions and 35 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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}

View File

@@ -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