Browse Source

Use encrypt.fail-on-error in DecryptEnvironmentPostProcessor

Fixes gh-882
pull/888/head
spencergibb 4 years ago
parent
commit
eb32ea8f21
No known key found for this signature in database
GPG Key ID: 7788A47380690861
  1. 2
      spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/DecryptEnvironmentPostProcessor.java
  2. 23
      spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionIntegrationTests.java

2
spring-cloud-context/src/main/java/org/springframework/cloud/bootstrap/encrypt/DecryptEnvironmentPostProcessor.java

@ -80,7 +80,7 @@ public class DecryptEnvironmentPostProcessor extends AbstractEnvironmentDecrypt @@ -80,7 +80,7 @@ public class DecryptEnvironmentPostProcessor extends AbstractEnvironmentDecrypt
KeyProperties keyProperties = binder.bind(KeyProperties.PREFIX, KeyProperties.class)
.orElseGet(KeyProperties::new);
if (keysConfigured(keyProperties)) {
setFailOnError(keyProperties.isFailOnError());
if (ClassUtils.isPresent("org.springframework.security.rsa.crypto.RsaSecretEncryptor", null)) {
RsaProperties rsaProperties = binder.bind(RsaProperties.PREFIX, RsaProperties.class)
.orElseGet(RsaProperties::new);

23
spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EncryptionIntegrationTests.java

@ -26,6 +26,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties @@ -26,6 +26,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Configuration;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.assertj.core.api.BDDAssertions.then;
public class EncryptionIntegrationTests {
@ -66,6 +67,28 @@ public class EncryptionIntegrationTests { @@ -66,6 +67,28 @@ public class EncryptionIntegrationTests {
then(context.getBean(PasswordProperties.class).getPassword()).isEqualTo("test");
}
@Test
public void symmetricPropertyValuesFailOnError() {
assertThatThrownBy(() -> {
ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class)
.web(WebApplicationType.NONE)
.properties("spring.config.use-legacy-processing=false", "encrypt.key:pie",
"foo.password:{cipher}ZZZbf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95")
.run();
}).isInstanceOf(IllegalStateException.class).hasMessageContaining("Cannot decrypt");
}
@Test
public void symmetricPropertyValuesFailOnErrorFalse() {
ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class)
.web(WebApplicationType.NONE)
.properties("encrypt.fail-on-error=false", "spring.config.use-legacy-processing=false",
"encrypt.key:pie",
"foo.password:{cipher}ZZZbf29452295df354e6153c5b31b03ef23c70e55fba24299aa85c63438f1c43c95")
.run();
then(context.getEnvironment().getProperty("foo.password")).isEmpty();
}
@Test
public void symmetricPropertyValues() {
ConfigurableApplicationContext context = new SpringApplicationBuilder(TestAutoConfiguration.class)

Loading…
Cancel
Save