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);
}