From f612c87e3accca12f6781fb3a34787968a5fb415 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Fri, 10 May 2024 09:41:06 +0800 Subject: [PATCH] =?UTF-8?q?@SaCheckOr=E6=B3=A8=E8=A7=A3=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=A1=A5=E5=85=A8@SaCheckHttpDigest=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/dev33/satoken/annotation/SaCheckOr.java | 11 +++++++++-- .../cn/dev33/satoken/strategy/SaStrategy.java | 17 ++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java index 921dd386..8652619b 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/annotation/SaCheckOr.java @@ -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} diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java b/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java index cb1e47c2..df89ae7e 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/strategy/SaStrategy.java @@ -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 里面会有多个异常,我们随便抛出一个即可