From 3ba8ddd2a5fcd91718f3b37925c436a265d9fe75 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Tue, 8 Sep 2020 23:23:07 +0530 Subject: [PATCH] Trimming spaces for string api parameter --- .../com/cloud/api/dispatch/ParamProcessWorker.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java b/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java index d4299861e71e..4db2ba8d519a 100644 --- a/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java +++ b/server/src/main/java/com/cloud/api/dispatch/ParamProcessWorker.java @@ -367,7 +367,7 @@ private void setFieldValue(final Field field, final BaseCmd cmdObj, final Object final List listParam = new ArrayList(); final StringTokenizer st = new StringTokenizer(paramObj.toString(), ","); while (st.hasMoreTokens()) { - final String token = st.nextToken(); + final String token = st.nextToken().trim(); final CommandType listType = annotation.collectionType(); switch (listType) { case INTEGER: @@ -408,8 +408,13 @@ private void setFieldValue(final Field field, final BaseCmd cmdObj, final Object if (paramObj.toString().length() > annotation.length()) { s_logger.error("Value greater than max allowed length " + annotation.length() + " for param: " + field.getName()); throw new InvalidParameterValueException("Value greater than max allowed length " + annotation.length() + " for param: " + field.getName()); - } else { - field.set(cmdObj, paramObj.toString()); + } else{ + String trimmedParam = paramObj.toString().trim(); + if (trimmedParam.length() == 0){ + s_logger.error("Empty string or only spaces are not allowed for " + field.getName()); + throw new InvalidParameterValueException("Empty string or only spaces are not allowed for " + field.getName()); + } + field.set(cmdObj, trimmedParam); } } break;