diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSignConfig.java b/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSignConfig.java index 01a9065b..1e5cd72d 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSignConfig.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/config/SaSignConfig.java @@ -36,11 +36,6 @@ public class SaSignConfig { */ private long timestampDisparity = 1000 * 60 * 15; - /** - * 是否校验 nonce 随机字符串 - */ - private Boolean isCheckNonce = true; - /** * 获取 API 调用签名秘钥 @@ -88,26 +83,6 @@ public class SaSignConfig { return this; } - /** - * 获取 是否校验 nonce 随机字符串 - * - * @return / - */ - public Boolean getIsCheckNonce() { - return this.isCheckNonce; - } - - /** - * 设置 是否校验 nonce 随机字符串 - * - * @param isCheckNonce / - * @return 对象自身 - */ - public SaSignConfig setIsCheckNonce(Boolean isCheckNonce) { - this.isCheckNonce = isCheckNonce; - return this; - } - /** * 计算保存 nonce 时应该使用的 ttl,单位:秒 * @return / @@ -128,8 +103,18 @@ public class SaSignConfig { return "SaSignConfig [" + "secretKey=" + secretKey + ", timestampDisparity=" + timestampDisparity - + ", isCheckNonce=" + isCheckNonce + "]"; } + /** + * 设置:是否校验 nonce 随机字符串 + *

isCheckNonce 方案已废弃,不再提供此配置项

+ * + * @param isCheckNonce / + */ + @Deprecated + public void setIsCheckNonce(Boolean isCheckNonce) { + System.err.println("--------- isCheckNonce 方案已废弃,不再提供此配置项 ---------"); + } + } \ No newline at end of file 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 fd4ef9b6..bc0245cf 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 @@ -295,13 +295,14 @@ public class SaSignTemplate { String signValue = paramMap.get(sign); // 参数非空校验 - SaSignException.notEmpty(timestampValue, "缺少 timestamp 字段"); - // SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时,可以不传 nonce - SaSignException.notEmpty(signValue, "缺少 sign 字段"); + // 配置isCheckNonce=false时,可以不传 nonce + if(SaFoxUtil.isEmpty(timestampValue) || SaFoxUtil.isEmpty(signValue)) { + return false; + } // 三个值的校验必须全部通过 return isValidTimestamp(Long.parseLong(timestampValue)) - && (getSignConfigOrGlobal().getIsCheckNonce() ? isValidNonce(nonceValue) : true) + && isValidNonce(nonceValue) && isValidSign(paramMap, signValue); } @@ -317,14 +318,12 @@ public class SaSignTemplate { // 参数非空校验 SaSignException.notEmpty(timestampValue, "缺少 timestamp 字段"); - // SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时,可以不传 nonce + SaSignException.notEmpty(nonceValue, "缺少 nonce 字段"); SaSignException.notEmpty(signValue, "缺少 sign 字段"); // 依次校验三个参数 checkTimestamp(Long.parseLong(timestampValue)); - if(getSignConfigOrGlobal().getIsCheckNonce()) { - checkNonce(nonceValue); - } + checkNonce(nonceValue); checkSign(paramMap, signValue); // 通过 √