From 590667076d420593e707ba30ff8419c56e5f52b2 Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Wed, 3 Dec 2014 12:16:24 +0100 Subject: [PATCH] CID-1256277 use StringBuffer in loop --- server/src/com/cloud/user/AccountManagerImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index b6aa201bd92..983a58a4662 100644 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -1998,6 +1998,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M String signature = null; long timestamp = 0L; String unsignedRequest = null; + StringBuffer unsignedRequestBuffer = new StringBuffer(); // - build a request string with sorted params, make sure it's all lowercase // - sign the request, verify the signature is the same @@ -2038,11 +2039,10 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M } } - if (unsignedRequest == null) { - unsignedRequest = paramName + "=" + URLEncoder.encode(paramValue, "UTF-8").replaceAll("\\+", "%20"); - } else { - unsignedRequest = unsignedRequest + "&" + paramName + "=" + URLEncoder.encode(paramValue, "UTF-8").replaceAll("\\+", "%20"); + if (unsignedRequestBuffer.length() != 0) { + unsignedRequestBuffer.append("&"); } + unsignedRequestBuffer.append(paramName).append("=").append(URLEncoder.encode(paramValue, "UTF-8")); } } @@ -2053,7 +2053,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M return null; } - unsignedRequest = unsignedRequest.toLowerCase(); + unsignedRequest = unsignedRequestBuffer.toString().toLowerCase().replaceAll("\\+", "%20"); Mac mac = Mac.getInstance("HmacSHA1"); SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "HmacSHA1");