mirror of https://github.com/apache/cloudstack.git
bug 8726: escape ", ', &, <, > special chars in xml response
status 8726: resolved fixed
This commit is contained in:
parent
1372767685
commit
9e622c6a6c
|
|
@ -164,7 +164,7 @@ public class ApiResponseSerializer {
|
|||
}else if (fieldValue instanceof Date) {
|
||||
sb.append("<" + serializedName.value() + ">" + BaseCmd.getDateString((Date)fieldValue) + "</" + serializedName.value() + ">");
|
||||
} else {
|
||||
sb.append("<" + serializedName.value() + ">" + fieldValue.toString() + "</" + serializedName.value() + ">");
|
||||
sb.append("<" + serializedName.value() + ">" + escapeSpecialXmlChars(fieldValue.toString()) + "</" + serializedName.value() + ">");
|
||||
}
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
|
|
@ -222,4 +222,26 @@ public class ApiResponseSerializer {
|
|||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private static String escapeSpecialXmlChars(String originalString) {
|
||||
char[] origChars = originalString.toCharArray();
|
||||
StringBuilder resultString = new StringBuilder();
|
||||
|
||||
for (char singleChar : origChars) {
|
||||
if (singleChar == '"') {
|
||||
resultString.append(""");
|
||||
} else if (singleChar == '\'') {
|
||||
resultString.append("'");
|
||||
} else if (singleChar == '<') {
|
||||
resultString.append("<");
|
||||
} else if (singleChar == '>') {
|
||||
resultString.append(">");
|
||||
} else if (singleChar == '&') {
|
||||
resultString.append("&");
|
||||
} else {
|
||||
resultString.append(singleChar);
|
||||
}
|
||||
}
|
||||
return resultString.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue