繁体   English   中英

如何在 cube.js 中访问驱动程序中的当前安全上下文

[英]How to access current security context within a driver in cube.js

我正在开发一个自定义的cube.js数据库驱动程序,它使用一个私有的 http 服务,它接受任意的原始 sql 并将结果作为 json 返回。

http 服务使用Authorization标头来识别用户(以便它可以强制执行适当的访问控制)。

我一直在寻找可以将cube.js安全上下文传递给驱动程序的方法。


我尝试了他们的多租户文档中提到的步骤,特别是多模式和驱动程序之一。

它仅在我第一次能够访问driverFactory()回调中的安全上下文时才有效。 在那里,我使用securityContext中的用户令牌初始化新的驱动程序实例。

但是对于后续调用(具有不同用户的事件!), cube.js重用相同的实例。 这就是问题的原因。 我无法在不同的应用程序用户之间重用驱动程序。

有没有办法解决这个问题? 还是我在这里没有正确实施多租户?

我们可以使用contextToOrchestratorId函数(在v0.29中引入)结合contextToAppId来实现。

根据文件,

contextToOrchestratorId是一个用于确定 Query Orchestrator 实例的缓存键的函数。 Query Orchestrator 保存数据库连接、执行队列、预聚合表缓存。 默认情况下,所有租户使用同一个实例; 在每个租户都需要自己的 Query Orchestrator 的情况下覆盖此属性。


感谢Cube.js 社区 slack上的 Ivan Vdovin 提供方向 +1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM