Merge remote-tracking branch 'origin/2.0.x'

This commit is contained in:
Ryan Baxter
2019-01-07 12:43:08 -05:00
2 changed files with 75 additions and 31 deletions

View File

@@ -38,6 +38,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import static org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.DECRYPTED_PROPERTY_SOURCE_NAME;
@@ -78,6 +80,17 @@ public class EnvironmentDecryptApplicationInitializerTests {
assertEquals("spam", context.getEnvironment().getProperty("foo"));
}
@Test
public void propertySourcesOrderedCorrectlyWithUnencryptedOverrides() {
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext();
TestPropertyValues.of("foo: {cipher}bar").applyTo(context);
context.getEnvironment().getPropertySources()
.addFirst(new MapPropertySource("test_override",
Collections.<String, Object>singletonMap("foo", "spam")));
this.listener.initialize(context);
assertEquals("spam", context.getEnvironment().getProperty("foo"));
}
@Test(expected = IllegalStateException.class)
public void errorOnDecrypt() {
this.listener = new EnvironmentDecryptApplicationInitializer(
@@ -173,4 +186,22 @@ public class EnvironmentDecryptApplicationInitializerTests {
initializer.initialize(ctx);
assertEquals(expected, ctx.getEnvironment().getProperty("key"));
}
@Test
public void testOnlyDecryptIfNotOverridden() {
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext();
TextEncryptor encryptor = mock(TextEncryptor.class);
when(encryptor.decrypt("bar2")).thenReturn("bar2");
EnvironmentDecryptApplicationInitializer initializer = new EnvironmentDecryptApplicationInitializer(
encryptor);
TestPropertyValues.of("foo: {cipher}bar", "foo2: {cipher}bar2").applyTo(context);
context.getEnvironment().getPropertySources()
.addFirst(new MapPropertySource("test_override",
Collections.<String, Object>singletonMap("foo", "spam")));
initializer.initialize(context);
assertEquals("spam", context.getEnvironment().getProperty("foo"));
assertEquals("bar2", context.getEnvironment().getProperty("foo2"));
verify(encryptor).decrypt("bar2");
verifyNoMoreInteractions(encryptor);
}
}