fix: 修复 sa-token-dubbo 模块,部分场景下无法正确处理上下文的问题

This commit is contained in:
click33
2025-04-16 15:31:01 +08:00
parent 95f4d62c8e
commit cc681672df
9 changed files with 68 additions and 45 deletions

View File

@@ -16,6 +16,7 @@
package cn.dev33.satoken.context.dubbo.filter;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.context.dubbo.util.SaTokenContextDubboUtil;
import cn.dev33.satoken.util.SaTokenConsts;
import org.apache.dubbo.common.constants.CommonConstants;
@@ -33,11 +34,15 @@ public class SaTokenDubboContextFilter implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) {
try {
SaTokenContextDubboUtil.setContext(RpcContext.getContext());
if(SaHolder.getContext().isValid()) {
return invoker.invoke(invocation);
} finally {
SaManager.getSaTokenContext().clearContext();
} else {
try {
SaTokenContextDubboUtil.setContext(RpcContext.getContext());
return invoker.invoke(invocation);
} finally {
SaManager.getSaTokenContext().clearContext();
}
}
}