需要将role等表做到客户的私库,考虑动态数据源,登录时提示‘未获得用户的角色信息’

Blade 未结 1 386
蚂蚁上树
蚂蚁上树 剑者 2022-12-20 11:19

一、该问题的重现步骤是什么?

1. 需要将role等表做到客户的私库,考虑动态数据源,登录时提示‘未获得用户的角色信息’

2. 具体跟踪代码发现是登录时

image.png

image.png

image.png

image.png

image.png

3.登录时获取token接口,里面又需要做动态数据源怎么处理


二、你期待的结果是什么?实际看到的又是什么?

   读取私库中的role表数据,默认主库role表

三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 多租户数据库隔离方案看下开发手册这个章节。

    QUAPFQ[XYC3{B~M)74LB~(U.png

    作者追问:2022-12-20 14:39

    动态数据源已经配置好了的,@TenantDS是不是需要token的加持才能做动态数据源切换?以上截图内容都是blade-auth/oauth/token做登录时的代码

    作者追问:2022-12-20 14:56

    image.png


    以上是报错信息


    image.png


    这里tenantId是""空字符串。这个tenantId是不是在token上面取的?是不是就是因为这个是登录获取token的接口,本身没有传token进来导致的?如果是请问怎么解决?


    作者追问:2022-12-20 15:03

    image.png

    目前发现tenantId是出自这里,这个Claims是不是jwt中的token啊?如果真是token,请问登录的时候怎么解决这个role表做动态数据源的问题

    回答: 2022-12-20 17:32

    登陆的租户ID是前端传的。

    6PD8W{AEXC~1XYK{R4PNUU2.png


    作者追问:2022-12-20 18:39

    换个思路,既然feign调用过去的时候没有token,那我就不从token里面取tenantid切换数据源,使用header中的tenantId来切换数据源,但是问题又出现在了通过feign调用之后,feignclient那边请求头中没有tenantId携带过来,通过spring-core-cloud,spring-core-context两个项目的调整始终不能再feign拿到tenantid。请指教

    0 讨论(0)
提交回复