Merge branch 'hotfix/CID-1256277'

This commit is contained in:
Daan Hoogland 2014-12-08 12:40:08 +01:00
commit 05b2ec4f55

View File

@ -1998,6 +1998,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
String signature = null; String signature = null;
long timestamp = 0L; long timestamp = 0L;
String unsignedRequest = null; String unsignedRequest = null;
StringBuffer unsignedRequestBuffer = new StringBuffer();
// - build a request string with sorted params, make sure it's all lowercase // - build a request string with sorted params, make sure it's all lowercase
// - sign the request, verify the signature is the same // - sign the request, verify the signature is the same
@ -2038,11 +2039,10 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
} }
} }
if (unsignedRequest == null) { if (unsignedRequestBuffer.length() != 0) {
unsignedRequest = paramName + "=" + URLEncoder.encode(paramValue, "UTF-8").replaceAll("\\+", "%20"); unsignedRequestBuffer.append("&");
} else {
unsignedRequest = unsignedRequest + "&" + paramName + "=" + URLEncoder.encode(paramValue, "UTF-8").replaceAll("\\+", "%20");
} }
unsignedRequestBuffer.append(paramName).append("=").append(URLEncoder.encode(paramValue, "UTF-8"));
} }
} }
@ -2053,7 +2053,7 @@ public class AccountManagerImpl extends ManagerBase implements AccountManager, M
return null; return null;
} }
unsignedRequest = unsignedRequest.toLowerCase(); unsignedRequest = unsignedRequestBuffer.toString().toLowerCase().replaceAll("\\+", "%20");
Mac mac = Mac.getInstance("HmacSHA1"); Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "HmacSHA1"); SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "HmacSHA1");