重构 SaTokenException 类方法 throwBy->notTrue、throwByNull->notEmpty

This commit is contained in:
click33 2024-04-12 10:05:56 +08:00
parent 8a2a4f0372
commit 217721cae6
5 changed files with 78 additions and 13 deletions

View File

@ -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异常
* <h2>已过期请使用 notTrue 代替用法不变</h2>
*
* @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 异常
* <h2>已过期请使用 notEmpty 代替用法不变</h2>
*
* @param value
* @param message 异常信息
*/
@Deprecated
public static void throwByNull(Object value, String message) {
if(SaFoxUtil.isEmpty(value)) {
throw new SaSignException(message);
}
}
}

View File

@ -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异常
* <h2>已过期请使用 notTrue 代替用法不变</h2>
*
* @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异常
* <h2>已过期请使用 notEmpty 代替用法不变</h2>
*
* @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);
}
}
}

View File

@ -148,7 +148,7 @@ public class SaSignTemplate {
*/
public String createSign(Map<String, ?> 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));

View File

@ -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());

View File

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