簡體   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