mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-05-04 12:47:55 +08:00
重构代码:优化Dubbo调用时向下传递Token的规则,可避免在项目启动时由于Context无效引发的bug
This commit is contained in:
parent
e2463b7e03
commit
7a53b5cb00
@ -1,6 +1,5 @@
|
|||||||
package cn.dev33.satoken.context.dubbo.filter;
|
package cn.dev33.satoken.context.dubbo.filter;
|
||||||
|
|
||||||
import cn.dev33.satoken.exception.SaTokenException;
|
|
||||||
import org.apache.dubbo.common.constants.CommonConstants;
|
import org.apache.dubbo.common.constants.CommonConstants;
|
||||||
import org.apache.dubbo.common.extension.Activate;
|
import org.apache.dubbo.common.extension.Activate;
|
||||||
import org.apache.dubbo.rpc.Filter;
|
import org.apache.dubbo.rpc.Filter;
|
||||||
@ -11,6 +10,7 @@ import org.apache.dubbo.rpc.RpcContext;
|
|||||||
import org.apache.dubbo.rpc.RpcException;
|
import org.apache.dubbo.rpc.RpcException;
|
||||||
|
|
||||||
import cn.dev33.satoken.SaManager;
|
import cn.dev33.satoken.SaManager;
|
||||||
|
import cn.dev33.satoken.context.SaTokenContextDefaultImpl;
|
||||||
import cn.dev33.satoken.id.SaIdUtil;
|
import cn.dev33.satoken.id.SaIdUtil;
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import cn.dev33.satoken.util.SaTokenConsts;
|
import cn.dev33.satoken.util.SaTokenConsts;
|
||||||
@ -34,15 +34,10 @@ public class SaTokenDubboConsumerFilter implements Filter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 1. 调用前,向下传递会话Token
|
// 1. 调用前,向下传递会话Token
|
||||||
String tokenValueNotCut = null;
|
if(SaManager.getSaTokenContextOrSecond() != SaTokenContextDefaultImpl.defaultContext) {
|
||||||
try {
|
RpcContext.getContext().setAttachment(SaTokenConsts.JUST_CREATED, StpUtil.getTokenValueNotCut());
|
||||||
tokenValueNotCut = StpUtil.getTokenValueNotCut();
|
|
||||||
} catch (SaTokenException exception){
|
|
||||||
|
|
||||||
} finally {
|
|
||||||
RpcContext.getContext().setAttachment(SaTokenConsts.JUST_CREATED, tokenValueNotCut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 开始调用
|
// 2. 开始调用
|
||||||
Result invoke = invoker.invoke(invocation);
|
Result invoke = invoker.invoke(invocation);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user