From 5907a2c952b3bc48183b3739db0565124b5ccf0d Mon Sep 17 00:00:00 2001 From: alzimmermsft <48699787+alzimmermsft@users.noreply.github.com> Date: Tue, 21 Jul 2020 18:28:15 -0700 Subject: [PATCH] Fix RecordNetworkCallPolicy from improperly redacting XML Value nodes when outside of the context of UserDelegationKeys --- eng/versioning/version_client.txt | 1 + .../com/azure/core/test/models/RecordingRedactor.java | 11 +++++++---- sdk/storage/azure-storage-blob/pom.xml | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index 292138b72111..3b055c66d4f0 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -71,6 +71,7 @@ com.microsoft.azure:spring-data-cosmosdb;3.0.0-beta.1;3.0.0-beta.1 # unreleased_:;dependency-version # note: The unreleased dependencies will not be manipulated with the automatic PR creation code. +unreleased_com.azure:azure-core-test;1.4.0-beta.1 unreleased_com.azure:azure-messaging-servicebus;7.0.0-beta.4 unreleased_com.azure:azure-security-keyvault-keys;4.2.0-beta.6 diff --git a/sdk/core/azure-core-test/src/main/java/com/azure/core/test/models/RecordingRedactor.java b/sdk/core/azure-core-test/src/main/java/com/azure/core/test/models/RecordingRedactor.java index 7c52a1843429..2876917c480d 100644 --- a/sdk/core/azure-core-test/src/main/java/com/azure/core/test/models/RecordingRedactor.java +++ b/sdk/core/azure-core-test/src/main/java/com/azure/core/test/models/RecordingRedactor.java @@ -17,7 +17,7 @@ */ public class RecordingRedactor { private static final String REDACTED = "REDACTED"; - private static final String REDACTED_UTF_8 = Base64.getEncoder().encodeToString("REDACTED".getBytes(StandardCharsets.UTF_8)); + private static final String REDACTED_UTF_8 = Base64.getEncoder().encodeToString(REDACTED.getBytes(StandardCharsets.UTF_8)); private static final Pattern ACCESS_TOKEN_KEY_PATTERN = Pattern.compile("(?:\"accessToken\":\")(.*?)(?:\",|\"})"); private static final Pattern DELEGATIONKEY_KEY_PATTERN = Pattern.compile("(?:)(.*)(?:)"); @@ -53,9 +53,12 @@ private static String redactAccessToken(String content) { } private static String redactUserDelegationKey(String content) { - content = redactionReplacement(content, DELEGATIONKEY_KEY_PATTERN.matcher(content), REDACTED_UTF_8); - content = redactionReplacement(content, DELEGATIONKEY_CLIENTID_PATTERN.matcher(content), UUID.randomUUID().toString()); - content = redactionReplacement(content, DELEGATIONKEY_TENANTID_PATTERN.matcher(content), UUID.randomUUID().toString()); + if (content.contains("")) { + content = redactionReplacement(content, DELEGATIONKEY_KEY_PATTERN.matcher(content), REDACTED_UTF_8); + content = redactionReplacement(content, DELEGATIONKEY_CLIENTID_PATTERN.matcher(content), UUID.randomUUID().toString()); + content = redactionReplacement(content, DELEGATIONKEY_TENANTID_PATTERN.matcher(content), UUID.randomUUID().toString()); + } + return content; } diff --git a/sdk/storage/azure-storage-blob/pom.xml b/sdk/storage/azure-storage-blob/pom.xml index 37157c9b34e9..9dde9f5248d0 100644 --- a/sdk/storage/azure-storage-blob/pom.xml +++ b/sdk/storage/azure-storage-blob/pom.xml @@ -80,7 +80,7 @@ com.azure azure-core-test - 1.3.1 + 1.4.0-beta.1 test