2017-07-19 107 views
0

我正在尋找通過其REST API訪問Couchbase服務器的本地實例。 HTTP GET請求是從Java發送的。Couchbase REST授權

我目前遇到的問題與授權有關。 具體來說,我設法使用Couchbase's Basic Authorization,但只能通過使用Chrome的開發人員工具監視Couchbase瀏覽器會話並檢查請求標頭來獲取散列憑據(bG9jYWw6dHdlZXRzOnBBc3Mx,鏈接到上面的示例中)。

現在,another Couchbase article提到Couchbase使用符合SCRAM的SHA-1。但是,沒有提到如何從Couchbase獲取'鹽'和'迭代'參數。其中,我假設我需要從憑據去挑戰解決方案(即散列字符串)

所以,問題如下:如何從憑據(user =「local:tweets」,pass =「 pAss1「)(從第一個鏈接的例子)到bG9jYWw6dHdlZXRzOnBBc3Mx?

由於提前,

托馬斯

+0

既然你鏈接到N1QL,通過「其REST API」,我相信你指的是該服務。 –

+0

它實際上只是基於64位編碼的用戶名:密碼,它根本沒有散列。 DERP。 – Thomas

回答

0

SCRAM SHA-1支持僅用於數據(K/V)的服務和只通過certain Couchbase SDKs which use the memcached binary protocol。 Java SDK確實支持SCRAM SHA-1。

您似乎使用的REST界面是N1QL的API。這不支持SCRAM SHA認證。

如果您希望提供其他應用程序的HTTP訪問權限,我的建議是使用Spring Boot或類似軟件編寫一個小型Java應用程序,並從那裏使用Java SDK。然後,您可以完全控制REST界面上的認證方式。 A colleague wrote one of these就在那一天。請注意,即使在這種情況下,Java SDK在運行N1QL查詢時也不會使用SCRAM,但可以將其用作控制點。

+0

注意我還提出了一個問題來解決文檔清晰度問題:https://issues.couchbase.com/browse/DOC-2569 –