From 6d3a6b79d52113946dd1b1a07edb98b08b2d20a8 Mon Sep 17 00:00:00 2001 From: dongxl Date: Tue, 11 Dec 2018 18:10:49 +0800 Subject: [PATCH] =?UTF-8?q?winSecurity=E4=BC=98=E5=8C=96=20=20=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E6=9F=A5=E8=AF=A2bug=20=E9=98=B2=E6=AD=A2=E7=A9=BA?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E9=80=A0=E6=88=90=E7=9A=84=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/security/utils/MapFastUtils.java | 21 ++++++++++++------- .../utils/QuerySpecificationUtils.java | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/win-security/src/main/java/com/winbaoxian/module/security/utils/MapFastUtils.java b/win-security/src/main/java/com/winbaoxian/module/security/utils/MapFastUtils.java index c4f4a75..589125c 100644 --- a/win-security/src/main/java/com/winbaoxian/module/security/utils/MapFastUtils.java +++ b/win-security/src/main/java/com/winbaoxian/module/security/utils/MapFastUtils.java @@ -1,6 +1,7 @@ package com.winbaoxian.module.security.utils; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; @@ -11,18 +12,24 @@ * @date 2018-12-11 17:20 */ public enum MapFastUtils { + INSTANCE; + + public static final String NULL_VALUE = "null"; + public Map valueEmptyToNull(Map map) { - for (Object k : map.keySet()) { + if (MapUtils.isEmpty(map)) { + return null; + } + Object[] keys = map.keySet().toArray(); + for (Object k : keys) { Object v = map.get(k); if (v == null) { - continue; - } else if (v instanceof String && StringUtils.isBlank((CharSequence) v)) { - map.replace(k, null); - continue; + map.remove(k); + } else if (v instanceof CharSequence && (StringUtils.isBlank((CharSequence) v) || StringUtils.equalsIgnoreCase(NULL_VALUE, (CharSequence) v))) { + map.remove(k); } else if (v instanceof Collection && CollectionUtils.isEmpty((Collection) v)) { - map.replace(k, null); - continue; + map.remove(k); } } return map; diff --git a/win-security/src/main/java/com/winbaoxian/module/security/utils/QuerySpecificationUtils.java b/win-security/src/main/java/com/winbaoxian/module/security/utils/QuerySpecificationUtils.java index 3d090a3..a7c0959 100644 --- a/win-security/src/main/java/com/winbaoxian/module/security/utils/QuerySpecificationUtils.java +++ b/win-security/src/main/java/com/winbaoxian/module/security/utils/QuerySpecificationUtils.java @@ -82,7 +82,7 @@ private Predicate getPredicateBySearchParam(Object queryParam, Field field, if (value instanceof Collection && CollectionUtils.isEmpty((Collection) value)) { return null; } - if (value instanceof String && StringUtils.isBlank((CharSequence) value)) { + if (value instanceof CharSequence && StringUtils.isBlank((CharSequence) value)) { return null; } Predicate predicate = null;