-
Notifications
You must be signed in to change notification settings - Fork 808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rpc-rest-ribbon用户token header如何传递 #121
Comments
|
自定义header已经实现了,我是想获取HttpServletRequest 用户请求过来的token header头,但不是一个线程,RequestContextHolder.getRequestAttributes() 获取不到用户的请求 |
不太理解场景,你是指同步方法如(Try)的token已经成功传输过去给 被调用者了,但是异步方法(cancel,confirm)等由于是新建线程处理的,获取不到RequestContextHolder.getRequestAttributes() ? 如果可以的话,可以贴一下接收方收到的http header信息? |
是这样的,使用oatuth2+jwt 所有的接口都接收token鉴权,一次用户请求涉及多个服务需要把token 在服务间传递下去 |
框架本身的TCC也需要token鉴权,我想把用户请求的token 在TCC远程调用的时候也传递过去,使用RestRibbonEasyRpcConsumer 里面的RestTemplate 添加拦截器操作token可以,但在拦截器里面是新建线程所以是拿不到用户实际请求信息 |
还是没懂场景,加一下我微信,微信上聊?skyesx |
好的 加你了 |
在1.3.1版本及之后通过RemoteServiceCaller.getCurrentLogProcessContext()可以在RPC Consumer execute 或者 Queue Publish 的时候获得当前 ET的上下文 LogProcessContext,以此解决从事务主线程传递信息到异步执行的try,confirm,cancel等方法。但注意,在crash recover 的时候,目前并不会恢复对应设置的额外元信息 通过LogProcessContext的getExtendResourceMap,可以传递token等业务元信息到try,confirm,cancel等异步处理线程 |
|
建议补偿方法不要校验token,因为crashRecovery的时候:
从而导致补偿失败 |
使用rpc-rest-ribbon方式需要在事务发起方获取到用户token,然后在内部服务间传递,目前添加的RestTemplate 拦截器只能实现自定义header传递,想在拦截器里面获取当前request 也不行,不是一个线程,想问下有什么方法可以解决吗
The text was updated successfully, but these errors were encountered: