重构 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); 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异常 * 如果flag==true则抛出message异常
* <h2>已过期请使用 notTrue 代替用法不变</h2>
*
* @param flag 标记 * @param flag 标记
* @param message 异常信息 * @param message 异常信息
*/ */
@Deprecated
public static void throwBy(boolean flag, String message) { public static void throwBy(boolean flag, String message) {
if(flag) { if(flag) {
throw new SaSignException(message); throw new SaSignException(message);
@ -51,13 +80,17 @@ public class SaSignException extends SaTokenException {
/** /**
* 如果 value isEmpty则抛出 message 异常 * 如果 value isEmpty则抛出 message 异常
* <h2>已过期请使用 notEmpty 代替用法不变</h2>
*
* @param value * @param value
* @param message 异常信息 * @param message 异常信息
*/ */
@Deprecated
public static void throwByNull(Object value, String message) { public static void throwByNull(Object value, String message) {
if(SaFoxUtil.isEmpty(value)) { if(SaFoxUtil.isEmpty(value)) {
throw new SaSignException(message); throw new SaSignException(message);
} }
} }
} }

View File

@ -107,11 +107,40 @@ public class SaTokenException extends RuntimeException {
} }
/** /**
* 如果flag==true则抛出message异常 * 断言 flag 不为 true否则抛出 message 异常
* @param flag 标记 * @param flag 标记
* @param message 异常信息 * @param message 异常信息
* @param code 异常细分状态码 * @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) { public static void throwBy(boolean flag, String message, int code) {
if(flag) { if(flag) {
throw new SaTokenException(message).setCode(code); throw new SaTokenException(message).setCode(code);
@ -119,15 +148,18 @@ public class SaTokenException extends RuntimeException {
} }
/** /**
* 如果value==null或者isEmpty则抛出message异常 * 如果value==null或者isEmpty则抛出message异常
* @param value * <h2>已过期请使用 notEmpty 代替用法不变</h2>
* @param message 异常信息 *
* @param code 异常细分状态码 * @param value
* @param message 异常信息
* @param code 异常细分状态码
*/ */
@Deprecated
public static void throwByNull(Object value, String message, int code) { public static void throwByNull(Object value, String message, int code) {
if(SaFoxUtil.isEmpty(value)) { if(SaFoxUtil.isEmpty(value)) {
throw new SaTokenException(message).setCode(code); throw new SaTokenException(message).setCode(code);
} }
} }
} }

View File

@ -148,7 +148,7 @@ public class SaSignTemplate {
*/ */
public String createSign(Map<String, ?> paramsMap) { public String createSign(Map<String, ?> paramsMap) {
String secretKey = getSecretKey(); String secretKey = getSecretKey();
SaSignException.throwByNull(secretKey, "参与参数签名的秘钥不可为空", SaErrorCode.CODE_12201); SaSignException.notEmpty(secretKey, "参与参数签名的秘钥不可为空", SaErrorCode.CODE_12201);
// 如果调用者不小心传入了 sign 参数则此处需要将 sign 参数排除在外 // 如果调用者不小心传入了 sign 参数则此处需要将 sign 参数排除在外
if(paramsMap.containsKey(sign)) { if(paramsMap.containsKey(sign)) {
@ -295,9 +295,9 @@ public class SaSignTemplate {
String signValue = paramMap.get(sign); String signValue = paramMap.get(sign);
// 参数非空校验 // 参数非空校验
SaSignException.throwByNull(timestampValue, "缺少 timestamp 字段"); SaSignException.notEmpty(timestampValue, "缺少 timestamp 字段");
// SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时可以不传 nonce // SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时可以不传 nonce
SaSignException.throwByNull(signValue, "缺少 sign 字段"); SaSignException.notEmpty(signValue, "缺少 sign 字段");
// 三个值的校验必须全部通过 // 三个值的校验必须全部通过
return isValidTimestamp(Long.parseLong(timestampValue)) return isValidTimestamp(Long.parseLong(timestampValue))
@ -316,9 +316,9 @@ public class SaSignTemplate {
String signValue = paramMap.get(sign); String signValue = paramMap.get(sign);
// 参数非空校验 // 参数非空校验
SaSignException.throwByNull(timestampValue, "缺少 timestamp 字段"); SaSignException.notEmpty(timestampValue, "缺少 timestamp 字段");
// SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时可以不传 nonce // SaSignException.throwByNull(nonceValue, "缺少 nonce 字段"); // 配置isCheckNonce=false时可以不传 nonce
SaSignException.throwByNull(signValue, "缺少 sign 字段"); SaSignException.notEmpty(signValue, "缺少 sign 字段");
// 依次校验三个参数 // 依次校验三个参数
checkTimestamp(Long.parseLong(timestampValue)); checkTimestamp(Long.parseLong(timestampValue));

View File

@ -1147,7 +1147,7 @@ public class StpLogic {
*/ */
public void updateTokenToIdMapping(String tokenValue, Object loginId) { 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 指向 // 更新缓存中的 token 指向
getSaTokenDao().update(splicingKeyTokenValue(tokenValue), loginId.toString()); getSaTokenDao().update(splicingKeyTokenValue(tokenValue), loginId.toString());

View File

@ -524,7 +524,7 @@ public class SaSsoTemplate {
String url = path; String url = path;
if( ! url.startsWith("http") ) { if( ! url.startsWith("http") ) {
String serverUrl = SaSsoManager.getConfig().getServerUrl(); 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); url = SaFoxUtil.spliceTwoUrl(serverUrl, path);
} }