From fd9d2bb370caef4e9f9e3874e113c381ab4e5eb9 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sun, 17 Nov 2024 19:24:20 +0800 Subject: [PATCH] =?UTF-8?q?chore(core):=20=E7=A7=BB=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E6=A0=A1=E9=AA=8C=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/util/validate/CheckUtils.java | 204 ---------------- .../core/util/validate/ValidationUtils.java | 176 -------------- .../starter/core/util/validate/Validator.java | 218 ------------------ .../PasswordEncoderAutoConfiguration.java | 2 +- 4 files changed, 1 insertion(+), 599 deletions(-) delete mode 100644 continew-starter-core/src/main/java/top/continew/starter/core/util/validate/CheckUtils.java delete mode 100644 continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java delete mode 100644 continew-starter-core/src/main/java/top/continew/starter/core/util/validate/Validator.java diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/CheckUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/CheckUtils.java deleted file mode 100644 index 3883617d..00000000 --- a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/CheckUtils.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - *

- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.gnu.org/licenses/lgpl.html - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.continew.starter.core.util.validate; - -import cn.hutool.core.text.CharSequenceUtil; -import top.continew.starter.core.constant.StringConstants; -import top.continew.starter.core.exception.BusinessException; - -import java.util.function.BooleanSupplier; - -/** - * 业务参数校验工具类(抛出 500 ServiceException) - * - * @author Charles7c - * @see BusinessException - * @since 1.0.0 - */ -public class CheckUtils extends Validator { - - private static final Class EXCEPTION_TYPE = BusinessException.class; - - private CheckUtils() { - } - - /** - * 如果不存在,抛出异常 - * - * @param obj 被检测的对象 - * @param entityName 实体名 - * @param fieldName 字段名 - * @param fieldValue 字段值 - */ - public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) { - String message = "%s 为 [%s] 的 %s 记录已不存在".formatted(fieldName, fieldValue, CharSequenceUtil - .replace(entityName, "DO", StringConstants.EMPTY)); - throwIfNull(obj, message, EXCEPTION_TYPE); - } - - /** - * 如果为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNull(Object obj, String template, Object... params) { - throwIfNull(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotNull(Object obj, String template, Object... params) { - throwIfNotNull(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果存在,抛出异常 - * - * @param obj 被检测的对象 - * @param entityName 实体名 - * @param fieldName 字段名 - * @param fieldValue 字段值 - */ - public static void throwIfExists(Object obj, String entityName, String fieldName, Object fieldValue) { - String message = "%s 为 [%s] 的 %s 记录已存在".formatted(fieldName, fieldValue, entityName); - throwIfNotNull(obj, message, EXCEPTION_TYPE); - } - - /** - * 如果为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfEmpty(Object obj, String template, Object... params) { - throwIfEmpty(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotEmpty(Object obj, String template, Object... params) { - throwIfNotEmpty(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果为空,抛出异常 - * - * @param str 被检测的字符串 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfBlank(CharSequence str, String template, Object... params) { - throwIfBlank(str, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不为空,抛出异常 - * - * @param str 被检测的字符串 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotBlank(CharSequence str, String template, Object... params) { - throwIfNotBlank(str, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果相同,抛出异常 - * - * @param obj1 要比较的对象1 - * @param obj2 要比较的对象2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfEqual(Object obj1, Object obj2, String template, Object... params) { - throwIfEqual(obj1, obj2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不相同,抛出异常 - * - * @param obj1 要比较的对象1 - * @param obj2 要比较的对象2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotEqual(Object obj1, Object obj2, String template, Object... params) { - throwIfNotEqual(obj1, obj2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果相同,抛出异常(不区分大小写) - * - * @param str1 要比较的字符串1 - * @param str2 要比较的字符串2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfEqualIgnoreCase(CharSequence str1, CharSequence str2, String template, Object... params) { - throwIfEqualIgnoreCase(str1, str2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不相同,抛出异常(不区分大小写) - * - * @param str1 要比较的字符串1 - * @param str2 要比较的字符串2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotEqualIgnoreCase(CharSequence str1, - CharSequence str2, - String template, - Object... params) { - throwIfNotEqualIgnoreCase(str1, str2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果条件成立,抛出异常 - * - * @param condition 条件 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIf(boolean condition, String template, Object... params) { - throwIf(condition, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果条件成立,抛出异常 - * - * @param conditionSupplier 条件 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) { - throwIf(conditionSupplier, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } -} diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java deleted file mode 100644 index 8518e2f2..00000000 --- a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/ValidationUtils.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - *

- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.gnu.org/licenses/lgpl.html - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.continew.starter.core.util.validate; - -import cn.hutool.core.text.CharSequenceUtil; -import top.continew.starter.core.exception.BadRequestException; - -import java.util.function.BooleanSupplier; - -/** - * 基本参数校验工具类(抛出 400 BadRequestException) - * - * @author Charles7c - * @see BadRequestException - * @since 1.0.0 - */ -public class ValidationUtils extends Validator { - - private static final Class EXCEPTION_TYPE = BadRequestException.class; - - private ValidationUtils() { - } - - /** - * 如果为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNull(Object obj, String template, Object... params) { - throwIfNull(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotNull(Object obj, String template, Object... params) { - throwIfNotNull(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfEmpty(Object obj, String template, Object... params) { - throwIfEmpty(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不为空,抛出异常 - * - * @param obj 被检测的对象 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotEmpty(Object obj, String template, Object... params) { - throwIfNotEmpty(obj, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果为空,抛出异常 - * - * @param str 被检测的字符串 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfBlank(CharSequence str, String template, Object... params) { - throwIfBlank(str, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不为空,抛出异常 - * - * @param str 被检测的字符串 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotBlank(CharSequence str, String template, Object... params) { - throwIfNotBlank(str, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果相同,抛出异常 - * - * @param obj1 要比较的对象1 - * @param obj2 要比较的对象2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfEqual(Object obj1, Object obj2, String template, Object... params) { - throwIfEqual(obj1, obj2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不相同,抛出异常 - * - * @param obj1 要比较的对象1 - * @param obj2 要比较的对象2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotEqual(Object obj1, Object obj2, String template, Object... params) { - throwIfNotEqual(obj1, obj2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果相同,抛出异常(不区分大小写) - * - * @param str1 要比较的字符串1 - * @param str2 要比较的字符串2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfEqualIgnoreCase(CharSequence str1, CharSequence str2, String template, Object... params) { - throwIfEqualIgnoreCase(str1, str2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果不相同,抛出异常(不区分大小写) - * - * @param str1 要比较的字符串1 - * @param str2 要比较的字符串2 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIfNotEqualIgnoreCase(CharSequence str1, - CharSequence str2, - String template, - Object... params) { - throwIfNotEqualIgnoreCase(str1, str2, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果条件成立,抛出异常 - * - * @param condition 条件 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIf(boolean condition, String template, Object... params) { - throwIf(condition, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } - - /** - * 如果条件成立,抛出异常 - * - * @param conditionSupplier 条件 - * @param template 异常信息模板,被替换的部分用 {} 表示,如果模板为 null,返回 "null" - * @param params 参数值 - */ - public static void throwIf(BooleanSupplier conditionSupplier, String template, Object... params) { - throwIf(conditionSupplier, CharSequenceUtil.format(template, params), EXCEPTION_TYPE); - } -} diff --git a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/Validator.java b/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/Validator.java deleted file mode 100644 index 1fcc5e17..00000000 --- a/continew-starter-core/src/main/java/top/continew/starter/core/util/validate/Validator.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - *

- * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.gnu.org/licenses/lgpl.html - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.continew.starter.core.util.validate; - -import cn.hutool.core.text.CharSequenceUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.ReflectUtil; -import cn.hutool.extra.spring.SpringUtil; -import jakarta.validation.ConstraintViolation; -import jakarta.validation.ConstraintViolationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.Set; -import java.util.function.BooleanSupplier; - -/** - * 校验器 - * - * @author Charles7c - * @since 1.0.0 - */ -public class Validator { - private static final Logger log = LoggerFactory.getLogger(Validator.class); - private static final jakarta.validation.Validator VALIDATOR = SpringUtil - .getBean(jakarta.validation.Validator.class); - - protected Validator() { - } - - /** - * 如果为空,抛出异常 - * - * @param obj 被检测的对象 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfNull(Object obj, String message, Class exceptionType) { - throwIf(null == obj, message, exceptionType); - } - - /** - * 如果不为空,抛出异常 - * - * @param obj 被检测的对象 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfNotNull(Object obj, String message, Class exceptionType) { - throwIf(null != obj, message, exceptionType); - } - - /** - * 如果为空,抛出异常 - * - * @param obj 被检测的对象 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfEmpty(Object obj, String message, Class exceptionType) { - throwIf(ObjectUtil.isEmpty(obj), message, exceptionType); - } - - /** - * 如果不为空,抛出异常 - * - * @param obj 被检测的对象 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfNotEmpty(Object obj, String message, Class exceptionType) { - throwIf(ObjectUtil.isNotEmpty(obj), message, exceptionType); - } - - /** - * 如果为空,抛出异常 - * - * @param str 被检测的字符串 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfBlank(CharSequence str, - String message, - Class exceptionType) { - throwIf(CharSequenceUtil.isBlank(str), message, exceptionType); - } - - /** - * 如果不为空,抛出异常 - * - * @param str 被检测的字符串 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfNotBlank(CharSequence str, - String message, - Class exceptionType) { - throwIf(CharSequenceUtil.isNotBlank(str), message, exceptionType); - } - - /** - * 如果相同,抛出异常 - * - * @param obj1 要比较的对象1 - * @param obj2 要比较的对象2 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfEqual(Object obj1, - Object obj2, - String message, - Class exceptionType) { - throwIf(ObjectUtil.equal(obj1, obj2), message, exceptionType); - } - - /** - * 如果不相同,抛出异常 - * - * @param obj1 要比较的对象1 - * @param obj2 要比较的对象2 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfNotEqual(Object obj1, - Object obj2, - String message, - Class exceptionType) { - throwIf(ObjectUtil.notEqual(obj1, obj2), message, exceptionType); - } - - /** - * 如果相同,抛出异常(不区分大小写) - * - * @param str1 要比较的字符串1 - * @param str2 要比较的字符串2 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfEqualIgnoreCase(CharSequence str1, - CharSequence str2, - String message, - Class exceptionType) { - throwIf(CharSequenceUtil.equalsIgnoreCase(str1, str2), message, exceptionType); - } - - /** - * 如果不相同,抛出异常(不区分大小写) - * - * @param str1 要比较的字符串1 - * @param str2 要比较的字符串2 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIfNotEqualIgnoreCase(CharSequence str1, - CharSequence str2, - String message, - Class exceptionType) { - throwIf(!CharSequenceUtil.equalsIgnoreCase(str1, str2), message, exceptionType); - } - - /** - * 如果条件成立,抛出异常 - * - * @param condition 条件 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIf(boolean condition, String message, Class exceptionType) { - if (condition) { - log.error(message); - throw ReflectUtil.newInstance(exceptionType, message); - } - } - - /** - * 如果条件成立,抛出异常 - * - * @param conditionSupplier 条件 - * @param message 错误信息 - * @param exceptionType 异常类型 - */ - protected static void throwIf(BooleanSupplier conditionSupplier, - String message, - Class exceptionType) { - if (null != conditionSupplier && conditionSupplier.getAsBoolean()) { - log.error(message); - throw ReflectUtil.newInstance(exceptionType, message); - } - } - - /** - * JSR 303 校验 - * - * @param obj 被校验对象 - * @param groups 分组 - * @since 2.3.0 - */ - public static void validate(Object obj, Class... groups) { - Set> violations = VALIDATOR.validate(obj, groups); - if (!violations.isEmpty()) { - throw new ConstraintViolationException(violations); - } - } -} diff --git a/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java b/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java index 2ad122be..d2e239fc 100644 --- a/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java +++ b/continew-starter-security/continew-starter-security-password/src/main/java/top/continew/starter/security/password/autoconfigure/PasswordEncoderAutoConfiguration.java @@ -33,7 +33,7 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder; import top.continew.starter.core.constant.PropertiesConstants; -import top.continew.starter.core.util.validate.CheckUtils; +import top.continew.starter.core.validation.CheckUtils; import java.util.HashMap; import java.util.List;