@SaCheckOr注解增加补全@SaCheckHttpDigest校验

This commit is contained in:
click33
2024-05-10 09:41:06 +08:00
parent adb600d643
commit f612c87e3a
2 changed files with 23 additions and 5 deletions
@@ -61,11 +61,18 @@ public @interface SaCheckOr {
SaCheckSafe[] safe() default {};
/**
* 设定 @SaCheckBasic,参考 {@link SaCheckHttpBasic}
* 设定 @SaCheckHttpBasic,参考 {@link SaCheckHttpBasic}
*
* @return /
*/
SaCheckHttpBasic[] basic() default {};
SaCheckHttpBasic[] httpBasic() default {};
/**
* 设定 @SaCheckBasic,参考 {@link SaCheckHttpDigest}
*
* @return /
*/
SaCheckHttpDigest[] httpDigest() default {};
/**
* 设定 @SaCheckDisable,参考 {@link SaCheckDisable}
@@ -17,10 +17,10 @@ package cn.dev33.satoken.strategy;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.annotation.*;
import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil;
import cn.dev33.satoken.exception.RequestPathInvalidException;
import cn.dev33.satoken.exception.SaTokenException;
import cn.dev33.satoken.fun.strategy.*;
import cn.dev33.satoken.httpauth.basic.SaHttpBasicUtil;
import cn.dev33.satoken.httpauth.digest.SaHttpDigestUtil;
import cn.dev33.satoken.session.SaSession;
import cn.dev33.satoken.stp.StpLogic;
@@ -265,8 +265,8 @@ public final class SaStrategy {
}
// 6、校验注解:@SaCheckBasic
SaCheckHttpBasic[] checkBasicArray = at.basic();
for (SaCheckHttpBasic item : checkBasicArray) {
SaCheckHttpBasic[] checkHttpBasicArray = at.httpBasic();
for (SaCheckHttpBasic item : checkHttpBasicArray) {
try {
SaHttpBasicUtil.check(item.realm(), item.account());
return;
@@ -275,6 +275,17 @@ public final class SaStrategy {
}
}
// 7、校验注解:@SaCheckDigest
SaCheckHttpDigest[] checkHttpDigestArray = at.httpDigest();
for (SaCheckHttpDigest item : checkHttpDigestArray) {
try {
SaHttpDigestUtil.checkByAnnotation(item);
return;
} catch (SaTokenException e) {
errorList.add(e);
}
}
// 如果执行到这里,有两种可能:
// 可能 1. SaCheckOr 注解上不包含任何注解校验,此时 errorList 里面一个异常都没有,我们直接跳过即可
// 可能 2. 所有注解校验都通过不了,此时 errorList 里面会有多个异常,我们随便抛出一个即可