mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-02-27 16:50:24 +08:00
fix: 修复 sa-token-dubbo 模块,部分场景下无法正确处理上下文的问题
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user