【发布时间】:2014-07-15 23:44:49
【问题描述】:
我正在使用 1.4.3 版本的 java 客户端并尝试连接到我在本地运行的 Couchbase 服务器,但我遇到了身份验证错误。在查看了他们的客户端库如何在他们的类中使用变量的代码(不是开源的吗?)之后,我得出的结论是,如果我想能够连接到我拥有的“桶”为每个“桶”创建一个与该桶具有相同用户名的用户。这对我来说毫无意义。我一定是错的。我不是吗?必须有另一种方式。那是什么?
作为参考,这是我用来创建连接的内容(它是 Scala,但在 Java 中看起来几乎相同):
val cf = new CouchbaseConnectionFactoryBuilder()
.setViewTimeout(opTimeout)
.setViewWorkerSize(workerSize)
.setViewConnsPerNode(conPerNode)
.buildCouchbaseConnection(nodes, bucket, password)
new CouchbaseClient(cf)
直接来自他们的examples。
他们的代码
如果我查看他们连接到“视图”本身的代码,我会看到以下内容:
public ViewConnection createViewConnection(
List<InetSocketAddress> addrs) throws IOException {
return new ViewConnection(this, addrs, bucket, pass);
}
然后将其传递给constructor:
public ViewConnection(final CouchbaseConnectionFactory cf,
final List<InetSocketAddress> seedAddrs, final String user,
final String password) //more code...
并且 user 变量实际上用于 HTTP Basic Auth 以形成 Authentication 标头。 user 变量当然等同于 CouchbaseConnectionFactory 中的 bucket 变量。
【问题讨论】: