Skip to content

Commit e7669e1

Browse files
committed
fix: transmit data from spring cloud config server controller to getEncryptor
Fixes gh-2252
1 parent 5953273 commit e7669e1

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/encryption/EncryptionController.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ public String encrypt(@RequestBody String data, @RequestHeader("Content-Type") M
103103
@PostMapping("/encrypt/{name}/{profiles}")
104104
public String encrypt(@PathVariable String name, @PathVariable String profiles, @RequestBody String data,
105105
@RequestHeader("Content-Type") MediaType type) {
106-
TextEncryptor encryptor = getEncryptor(name, profiles, "");
107-
validateEncryptionWeakness(encryptor);
108106
String input = stripFormData(data, type, false);
107+
TextEncryptor encryptor = getEncryptor(name, profiles, input);
108+
validateEncryptionWeakness(encryptor);
109109
Map<String, String> keys = helper.getEncryptorKeys(name, profiles, input);
110110
String textToEncrypt = helper.stripPrefix(input);
111-
String encrypted = helper.addPrefix(keys, encryptorLocator.locate(keys).encrypt(textToEncrypt));
111+
String encrypted = helper.addPrefix(keys, encryptor.encrypt(textToEncrypt));
112112
if (logger.isInfoEnabled()) {
113113
logger.info("Encrypted data");
114114
}
@@ -123,11 +123,10 @@ public String decrypt(@RequestBody String data, @RequestHeader("Content-Type") M
123123
@PostMapping("/decrypt/{name}/{profiles}")
124124
public String decrypt(@PathVariable String name, @PathVariable String profiles, @RequestBody String data,
125125
@RequestHeader("Content-Type") MediaType type) {
126-
TextEncryptor encryptor = getEncryptor(name, profiles, "");
127-
checkDecryptionPossible(encryptor);
128-
validateEncryptionWeakness(encryptor);
129126
try {
130-
encryptor = getEncryptor(name, profiles, data);
127+
TextEncryptor encryptor = getEncryptor(name, profiles, data);
128+
checkDecryptionPossible(encryptor);
129+
validateEncryptionWeakness(encryptor);
131130
String input = stripFormData(helper.stripPrefix(data), type, true);
132131
String decrypted = encryptor.decrypt(input);
133132
if (logger.isInfoEnabled()) {

spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/encryption/EncryptionControllerTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,14 @@ public void addEnvironment() {
145145

146146
@Override
147147
public TextEncryptor locate(Map<String, String> keys) {
148+
assertThat(keys.containsKey("key")).as("Missing encryptor key").isTrue();
149+
assertThat(keys.get("key")).as("Bad encryptor key value").isEqualTo("value");
148150
return this.encryptor;
149151
}
150152
};
151153
this.controller = new EncryptionController(locator);
152154
// Add space to input
153-
String cipher = this.controller.encrypt("app", "default", "foo bar", MediaType.TEXT_PLAIN);
155+
String cipher = this.controller.encrypt("app", "default", "{key:value}foo bar", MediaType.TEXT_PLAIN);
154156
assertThat(cipher.contains("{name:app}")).as("Wrong cipher: " + cipher).isFalse();
155157
String decrypt = this.controller.decrypt("app", "default", cipher, MediaType.TEXT_PLAIN);
156158
assertThat(decrypt).as("Wrong decrypted plaintext: " + decrypt).isEqualTo("foo bar");

0 commit comments

Comments
 (0)