This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.3 by this push:
     new 225037f49 [Improve] sql field check improvement
225037f49 is described below

commit 225037f4980a6107611e163f304ed0fb96380a5d
Author: benjobs <[email protected]>
AuthorDate: Sun Dec 31 17:11:13 2023 +0800

    [Improve] sql field check improvement
---
 .../console/base/mybatis/pager/MybatisPager.java   | 37 +++++++++++++++-------
 1 file changed, 26 insertions(+), 11 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
index 6d3dd0132..4435d622f 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
@@ -42,26 +42,41 @@ public final class MybatisPager<T> {
     page.setSize(request.getPageSize());
 
     List<OrderItem> orderItems = new ArrayList<>(0);
-    if (StringUtils.isNotBlank(request.getSortField())
-        && StringUtils.isNotBlank(request.getSortOrder())) {
+    if (!StringUtils.isAnyBlank(request.getSortField(), 
request.getSortOrder())) {
+
+      checkField(request.getSortField(), "sortField");
+
       String sortField = WebUtils.camelToUnderscore(request.getSortField());
-      if (StringUtils.equals(request.getSortOrder(), Constant.ORDER_DESC)) {
+      if (StringUtils.equalsIgnoreCase(request.getSortOrder(), 
Constant.ORDER_DESC)) {
         orderItems.add(OrderItem.desc(sortField));
-      } else {
+      } else if (StringUtils.equalsIgnoreCase(request.getSortOrder(), 
Constant.ORDER_ASC)) {
         orderItems.add(OrderItem.asc(sortField));
+      } else {
+        throw new IllegalArgumentException("Invalid argument sortOrder: " + 
request.getSortOrder());
       }
-    } else {
-      if (StringUtils.isNotBlank(defaultSort)) {
-        if (StringUtils.equals(defaultOrder, Constant.ORDER_DESC)) {
-          orderItems.add(OrderItem.desc(defaultSort));
-        } else {
-          orderItems.add(OrderItem.asc(defaultSort));
-        }
+    } else if (StringUtils.isNotBlank(defaultSort)) {
+      checkField(defaultSort, "defaultSort");
+      if (StringUtils.equalsIgnoreCase(defaultOrder, Constant.ORDER_DESC)) {
+        orderItems.add(OrderItem.desc(defaultSort));
+      } else if (StringUtils.equalsIgnoreCase(defaultOrder, 
Constant.ORDER_ASC)) {
+        orderItems.add(OrderItem.asc(defaultSort));
+      } else {
+        throw new IllegalArgumentException("Invalid argument sortOrder: " + 
defaultOrder);
       }
     }
+
     if (!orderItems.isEmpty()) {
       page.setOrders(orderItems);
     }
+
     return page;
   }
+
+  private void checkField(String field, String fieldName) {
+    boolean invalid = field != null && field.trim().split("\\s+").length > 1;
+    if (invalid) {
+      throw new IllegalArgumentException(
+          String.format("Invalid argument %s: %s", fieldName, field));
+    }
+  }
 }

Reply via email to