From 06eb31857f8fa857b1634e5ebe1025814e51a9cf Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 31 Aug 2020 14:13:25 +0200 Subject: [PATCH] Remove all newlines in PKCS7 from EC2MetaData. Closes gh-571. --- .../vault/authentication/AwsEc2Authentication.java | 4 ++-- .../AwsEc2AuthenticationUnitTests.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java index 5af7abbb..9adf8ab3 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/authentication/AwsEc2Authentication.java @@ -110,7 +110,7 @@ public class AwsEc2Authentication implements ClientAuthentication, Authenticatio return AuthenticationSteps .fromHttpRequest(HttpRequestBuilder.get(options.getIdentityDocumentUri().toString()).as(String.class)) // .map(pkcs7 -> pkcs7.replaceAll("\\r", "")) // - .map(pkcs7 -> pkcs7.replace("\\n", "")) // + .map(pkcs7 -> pkcs7.replaceAll("\\n", "")) // .map(pkcs7 -> { Map login = new HashMap<>(); @@ -189,7 +189,7 @@ public class AwsEc2Authentication implements ClientAuthentication, Authenticatio String pkcs7 = this.awsMetadataRestOperations.getForObject(this.options.getIdentityDocumentUri(), String.class); if (StringUtils.hasText(pkcs7)) { - login.put("pkcs7", pkcs7.replaceAll("\\r", "").replace("\\n", "")); + login.put("pkcs7", pkcs7.replaceAll("\\r", "").replaceAll("\\n", "")); } return login; diff --git a/spring-vault-core/src/test/java/org/springframework/vault/authentication/AwsEc2AuthenticationUnitTests.java b/spring-vault-core/src/test/java/org/springframework/vault/authentication/AwsEc2AuthenticationUnitTests.java index 5fa3c4ce..9609e07d 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/authentication/AwsEc2AuthenticationUnitTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/authentication/AwsEc2AuthenticationUnitTests.java @@ -73,6 +73,18 @@ class AwsEc2AuthenticationUnitTests { assertThat(authentication.getEc2Login()).containsEntry("pkcs7", "Hello, world").containsKey("nonce").hasSize(2); } + @Test + void shouldCleanUpIdentityResponse() { + + this.mockRest.expect(requestTo("http://169.254.169.254/latest/dynamic/instance-identity/pkcs7")) // + .andExpect(method(HttpMethod.GET)) // + .andRespond(withSuccess().body("Hello, \r\r\n\nworld")); + + AwsEc2Authentication authentication = new AwsEc2Authentication(this.restTemplate); + + assertThat(authentication.getEc2Login()).containsEntry("pkcs7", "Hello, world"); + } + @Test void shouldContainRole() {