2017-07-19 109 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 –