From 0e8778c2be564baabbf6d52e05391a7a349684e6 Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 22 Feb 2024 19:23:18 +0800 Subject: [PATCH] =?UTF-8?q?:recycle:=20Refactoring=20code.=20sql=E6=B3=A8?= =?UTF-8?q?=E5=85=A5=E6=A3=80=E6=B5=8B=E4=BD=BF=E7=94=A8mybatis-plus=20?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E5=B7=A5=E5=85=B7=E7=B1=BB=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resolver/SqlFilterArgumentResolver.java | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java index c753bc69d..a0ce13631 100644 --- a/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java +++ b/pigx-common/pigx-common-data/src/main/java/com/pig4cloud/pigx/common/data/resolver/SqlFilterArgumentResolver.java @@ -20,6 +20,7 @@ package com.pig4cloud.pigx.common.data.resolver; import cn.hutool.core.comparator.CompareUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.sql.SqlInjectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pig4cloud.pigx.common.core.exception.CheckedException; import lombok.extern.slf4j.Slf4j; @@ -34,7 +35,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.function.Predicate; import java.util.stream.Collectors; /** @@ -94,21 +94,18 @@ public class SqlFilterArgumentResolver implements HandlerMethodArgumentResolver } List orderItemList = new ArrayList<>(); - Optional.ofNullable(ascs).ifPresent(s -> orderItemList.addAll(Arrays.stream(s.split(StrUtil.COMMA)) - .filter(sqlInjectPredicate()).map(OrderItem::asc).collect(Collectors.toList()))); - Optional.ofNullable(descs).ifPresent(s -> orderItemList.addAll(Arrays.stream(s.split(StrUtil.COMMA)) - .filter(sqlInjectPredicate()).map(OrderItem::desc).collect(Collectors.toList()))); + Optional.ofNullable(ascs) + .ifPresent(s -> orderItemList.addAll(Arrays.stream(s.split(StrUtil.COMMA)) + .filter(SqlInjectionUtils::check) + .map(OrderItem::asc) + .collect(Collectors.toList()))); + Optional.ofNullable(descs) + .ifPresent(s -> orderItemList.addAll(Arrays.stream(s.split(StrUtil.COMMA)) + .filter(SqlInjectionUtils::check) + .map(OrderItem::desc) + .collect(Collectors.toList()))); page.addOrder(orderItemList); return page; } - - /** - * 判断用户输入里面有没有关键字 - * @return Predicate - */ - private Predicate sqlInjectPredicate() { - return sql -> Arrays.stream(KEYWORDS).noneMatch(keyword -> StrUtil.containsIgnoreCase(sql, keyword)); - } - }