From e43d5b1c7d506902093dc68211b7afa832ce886e Mon Sep 17 00:00:00 2001 From: Anshul Gangwar Date: Thu, 18 Sep 2014 15:23:47 +0530 Subject: [PATCH] CLOUDSTACK-7575: improved performance of cleanString method in StringUtils (cherry picked from commit 7972f53c8d35b78bd27cbd2c8bb1beb763b69c00) --- utils/src/com/cloud/utils/StringUtils.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/utils/src/com/cloud/utils/StringUtils.java b/utils/src/com/cloud/utils/StringUtils.java index 7014e5c8d1d..74dbd4dcc4c 100644 --- a/utils/src/com/cloud/utils/StringUtils.java +++ b/utils/src/com/cloud/utils/StringUtils.java @@ -159,9 +159,7 @@ public class StringUtils { } // removes a password request param and it's value, also considering password is in query parameter value which has been url encoded - private static final Pattern REGEX_PASSWORD_QUERYSTRING = Pattern.compile("(&|%26)?[^(&|%26)]*((p|P)assword|accesskey|secretkey)(=|%3D).*?(?=(%26|[&'\"]))"); - - private static final Pattern REGEX_END_PASSWORD_QUERYSTRING = Pattern.compile("(&|%26)[^(&|%26)]*((p|P)assword|accesskey|secretkey)(=|%3D).*"); + private static final Pattern REGEX_PASSWORD_QUERYSTRING = Pattern.compile("(&|%26)?[^(&|%26)]*((p|P)assword|accesskey|secretkey)(=|%3D).*?(?=(%26|[&'\"]|$))"); // removes a password/accesskey/ property from a response json object private static final Pattern REGEX_PASSWORD_JSON = Pattern.compile("\"((p|P)assword|accesskey|secretkey)\":\\s?\".*?\",?"); @@ -177,7 +175,6 @@ public class StringUtils { String cleanResult = ""; if (stringToClean != null) { cleanResult = REGEX_PASSWORD_QUERYSTRING.matcher(stringToClean).replaceAll(""); - cleanResult = REGEX_END_PASSWORD_QUERYSTRING.matcher(cleanResult).replaceAll(""); cleanResult = REGEX_PASSWORD_JSON.matcher(cleanResult).replaceAll(""); Matcher detailsMatcher = REGEX_PASSWORD_DETAILS.matcher(cleanResult); while (detailsMatcher.find()) {