Skip to content

Commit 03fa97c

Browse files
committed
use original uri
1 parent 116b900 commit 03fa97c

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

client/src/main/java/org/apache/cloudstack/ACSRequestLog.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ public ACSRequestLog() {
4646

4747
@Override
4848
public void log(Request request, Response response) {
49-
String requestURI = StringUtils.cleanString(request.getRequestURI());
50-
String parameters = StringUtils.cleanString(String.valueOf(request.getQueryParameters()));
49+
String requestURI = StringUtils.cleanString(request.getOriginalURI());
5150
try {
5251
StringBuilder sb = buffers.get();
5352
sb.setLength(0);
@@ -61,7 +60,6 @@ public void log(Request request, Response response) {
6160
.append(request.getMethod())
6261
.append(" ")
6362
.append(requestURI)
64-
.append(parameters)
6563
.append(" ")
6664
.append(request.getProtocol())
6765
.append("\" ")

utils/src/main/java/com/cloud/utils/StringUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ public static String getMaskedPasswordForDisplay(final String password) {
165165

166166
private static final Pattern REGEX_PASSWORD_DETAILS_INDEX = Pattern.compile("details(\\[|%5B)\\d*(\\]|%5D)");
167167

168+
private static final Pattern REGEX_SESSION_KEY = Pattern.compile("sessionkey=(\\p{Alnum}*)");
169+
168170
private static final Pattern REGEX_REDUNDANT_AND = Pattern.compile("(&|%26)(&|%26)+");
169171

170172
// Responsible for stripping sensitive content from request and response strings
@@ -173,6 +175,7 @@ public static String cleanString(final String stringToClean) {
173175
if (stringToClean != null) {
174176
cleanResult = REGEX_PASSWORD_QUERYSTRING.matcher(stringToClean).replaceAll("");
175177
cleanResult = REGEX_PASSWORD_JSON.matcher(cleanResult).replaceAll("");
178+
cleanResult = REGEX_SESSION_KEY.matcher(cleanResult).replaceFirst("");
176179
final Matcher detailsMatcher = REGEX_PASSWORD_DETAILS.matcher(cleanResult);
177180
while (detailsMatcher.find()) {
178181
final Matcher detailsIndexMatcher = REGEX_PASSWORD_DETAILS_INDEX.matcher(detailsMatcher.group());

utils/src/test/java/com/cloud/utils/StringUtilsTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,14 @@ public void testCleanSecretkeyFromRequestString() {
240240
assertEquals(result, expected);
241241
}
242242

243+
@Test
244+
public void testCleanSessionkeyFromRequestJsonString() {
245+
final String input = "{id=64b5e71d-2ae8-11ef-9466-1e00c400042b, showicon=true, command=listUsers, response=json, sessionkey=lXfAicKQXPBzt7KjLx6DwVfcOuA}";
246+
final String expected = "{id=64b5e71d-2ae8-11ef-9466-1e00c400042b, showicon=true, command=listUsers, response=json, }";
247+
final String result = StringUtils.cleanString(input);
248+
assertEquals(expected, result);
249+
}
250+
243251
@Test
244252
public void listToCsvTags() {
245253
assertEquals("a,b,c", StringUtils.listToCsvTags(Arrays.asList("a","b", "c")));

0 commit comments

Comments
 (0)