From 217721cae6f08c5c77d645ddc2a39f469a09593c Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Fri, 12 Apr 2024 10:05:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=20SaTokenException=20?= =?UTF-8?q?=E7=B1=BB=E6=96=B9=E6=B3=95=20throwBy->notTrue=E3=80=81throwByN?= =?UTF-8?q?ull->notEmpty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../satoken/exception/SaSignException.java | 33 ++++++++++++++ .../satoken/exception/SaTokenException.java | 44 ++++++++++++++++--- .../cn/dev33/satoken/sign/SaSignTemplate.java | 10 ++--- .../java/cn/dev33/satoken/stp/StpLogic.java | 2 +- .../cn/dev33/satoken/sso/SaSsoTemplate.java | 2 +- 5 files changed, 78 insertions(+), 13 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaSignException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaSignException.java index 4242bd78..da8da8bb 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaSignException.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaSignException.java @@ -38,11 +38,40 @@ public class SaSignException extends SaTokenException { super(message); } + /** + * 断言 flag 不为 true,否则抛出 message 异常 + * @param flag 表达式 + * @param message 异常信息 + */ + public static void notTrue(boolean flag, String message) { + // notTrue + if(flag) { + throw new SaSignException(message); + } + } + + /** + * 断言 value 不为空,否则抛出 message 异常 + * @param value 值 + * @param message 异常信息 + */ + public static void notEmpty(Object value, String message) { + if(SaFoxUtil.isEmpty(value)) { + throw new SaSignException(message); + } + } + + + // ------------------- 已过期 ------------------- + /** * 如果flag==true,则抛出message异常 + *

已过期:请使用 notTrue 代替,用法不变

+ * * @param flag 标记 * @param message 异常信息 */ + @Deprecated public static void throwBy(boolean flag, String message) { if(flag) { throw new SaSignException(message); @@ -51,13 +80,17 @@ public class SaSignException extends SaTokenException { /** * 如果 value isEmpty,则抛出 message 异常 + *

已过期:请使用 notEmpty 代替,用法不变

+ * * @param value 值 * @param message 异常信息 */ + @Deprecated public static void throwByNull(Object value, String message) { if(SaFoxUtil.isEmpty(value)) { throw new SaSignException(message); } } + } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java index db1099da..6c765862 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/SaTokenException.java @@ -107,11 +107,40 @@ public class SaTokenException extends RuntimeException { } /** - * 如果flag==true,则抛出message异常 + * 断言 flag 不为 true,否则抛出 message 异常 * @param flag 标记 * @param message 异常信息 * @param code 异常细分状态码 */ + public static void notTrue(boolean flag, String message, int code) { + if(flag) { + throw new SaTokenException(message).setCode(code); + } + } + + /** + * 断言 value 不为空,否则抛出 message 异常 + * @param value 值 + * @param message 异常信息 + * @param code 异常细分状态码 + */ + public static void notEmpty(Object value, String message, int code) { + if(SaFoxUtil.isEmpty(value)) { + throw new SaTokenException(message).setCode(code); + } + } + + // ------------------- 已过期 ------------------- + + /** + * 如果flag==true,则抛出message异常 + *

已过期:请使用 notTrue 代替,用法不变

+ * + * @param flag 标记 + * @param message 异常信息 + * @param code 异常细分状态码 + */ + @Deprecated public static void throwBy(boolean flag, String message, int code) { if(flag) { throw new SaTokenException(message).setCode(code); @@ -119,15 +148,18 @@ public class SaTokenException extends RuntimeException { } /** - * 如果value==null或者isEmpty,则抛出message异常 - * @param value 值 - * @param message 异常信息 - * @param code 异常细分状态码 + * 如果value==null或者isEmpty,则抛出message异常 + *

已过期:请使用 notEmpty 代替,用法不变

+ * + * @param value 值 + * @param message 异常信息 + * @param code 异常细分状态码 */ + @Deprecated public static void throwByNull(Object value, String message, int code) { if(SaFoxUtil.isEmpty(value)) { throw new SaTokenException(message).setCode(code); } } - + } diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/sign/SaSignTemplate.java b/sa-token-core/src/main/java/cn/dev33/satoken/sign/SaSignTemplate.java index 5eb3c13c..fd4ef9b6 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/sign/SaSignTemplate.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/sign/SaSignTemplate.java @@ -148,7 +148,7 @@ public class SaSignTemplate { */ public String createSign(Map paramsMap) { String secretKey = getSecretKey(); - SaSignException.throwByNull(secretKey, "参与参数签名的秘钥不可为空", SaErrorCode.CODE_12201); + SaSignException.notEmpty(secretKey, "参与参数签名的秘钥不可为空", SaErrorCode.CODE_12201); // 如果调用者不小心传入了 sign 参数,则此处需要将 sign 参数排除在外 if(paramsMap.containsKey(sign)) { @@ -295,9 +295,9 @@ public class SaSignTemplate { String signValue = paramMap.get(sign); // 参数非空校验 - SaSignException.throwByNull(timestampValue, "缺少 timestamp 字段"); + SaSignException.notEmpty(timestampValue, "缺少 timestamp 字段"); // SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时,可以不传 nonce - SaSignException.throwByNull(signValue, "缺少 sign 字段"); + SaSignException.notEmpty(signValue, "缺少 sign 字段"); // 三个值的校验必须全部通过 return isValidTimestamp(Long.parseLong(timestampValue)) @@ -316,9 +316,9 @@ public class SaSignTemplate { String signValue = paramMap.get(sign); // 参数非空校验 - SaSignException.throwByNull(timestampValue, "缺少 timestamp 字段"); + SaSignException.notEmpty(timestampValue, "缺少 timestamp 字段"); // SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时,可以不传 nonce - SaSignException.throwByNull(signValue, "缺少 sign 字段"); + SaSignException.notEmpty(signValue, "缺少 sign 字段"); // 依次校验三个参数 checkTimestamp(Long.parseLong(timestampValue)); diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java index 402932d5..98eef0a6 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java @@ -1147,7 +1147,7 @@ public class StpLogic { */ public void updateTokenToIdMapping(String tokenValue, Object loginId) { // 先判断一下,是否传入了空值 - SaTokenException.throwBy(SaFoxUtil.isEmpty(loginId), "loginId 不能为空", SaErrorCode.CODE_11003); + SaTokenException.notTrue(SaFoxUtil.isEmpty(loginId), "loginId 不能为空", SaErrorCode.CODE_11003); // 更新缓存中的 token 指向 getSaTokenDao().update(splicingKeyTokenValue(tokenValue), loginId.toString()); diff --git a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java index f173f25d..b8b3d0d6 100644 --- a/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java +++ b/sa-token-plugin/sa-token-sso/src/main/java/cn/dev33/satoken/sso/SaSsoTemplate.java @@ -524,7 +524,7 @@ public class SaSsoTemplate { String url = path; if( ! url.startsWith("http") ) { String serverUrl = SaSsoManager.getConfig().getServerUrl(); - SaSsoException.throwByNull(serverUrl, "请先配置 sa-token.sso.server-url 地址", SaSsoErrorCode.CODE_30012); + SaSsoException.notEmpty(serverUrl, "请先配置 sa-token.sso.server-url 地址", SaSsoErrorCode.CODE_30012); url = SaFoxUtil.spliceTwoUrl(serverUrl, path); }