Couchbase Bucket 身份验证错误
Couchbase Bucket authentication error
使用 Couchbase 5.0 及其 Java 客户端 2.0.3,出现以下错误。
只需按照以下说明打开存储桶:
https://developer.couchbase.com/documentation/server/current/sdk/java/managing-connections.html
如前所述,使用基本的本地配置,只需两行代码:
Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero");
这应该会打开本地主机集群(它确实会打开),然后打开一个名为 "hero" 的存储桶,它实际上存在于我的 Couchbase 服务器中。
然而,我不断收到以下错误:
2017-11-08 00:40:25.546 ERROR 1077 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "hero" do not match.] with root cause
com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "hero" do not match.
at com.couchbase.client.java.CouchbaseAsyncCluster.call(CouchbaseAsyncCluster.java:156) ~[java-client-2.0.3.jar:2.0.3]
at com.couchbase.client.java.CouchbaseAsyncCluster.call(CouchbaseAsyncCluster.java:146) ~[java-client-2.0.3.jar:2.0.3]
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction.onError(OperatorOnErrorResumeNextViaFunction.java:77) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorMap.onError(OperatorMap.java:49) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.NotificationLite.accept(NotificationLite.java:147) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:177) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.access[=11=]0(OperatorObserveOn.java:65) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:153) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47) ~[rxjava-1.0.4.jar:1.0.4]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_151]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_151]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_151]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_151]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
它以某种方式询问存储桶的密码。但是在Couchbase中并没有bucket级别的密码配置。
有人知道吗?
在 Couchbase Server 5.0 中,引入了基于角色的访问控制。您现在必须创建一个名称与存储桶名称匹配的用户,并在打开存储桶时使用该用户的密码。用户必须具有对存储桶具有访问权限的角色。
Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero", "password");
有关详细信息,请参阅此 Couchbase 论坛 post:V5.0 - NEW Role-Based Authentication - Bucket Passwords, etc
SDK Users
- Continue to use your current SDK versions to access buckets where there is a user, with proper permissions, with the same name as the bucket.
- Upgrade to the latest SDK versions to access the newer Authentication and User Management functions that are now available.
使用 Couchbase 5.0 及其 Java 客户端 2.0.3,出现以下错误。
只需按照以下说明打开存储桶:
https://developer.couchbase.com/documentation/server/current/sdk/java/managing-connections.html
如前所述,使用基本的本地配置,只需两行代码:
Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero");
这应该会打开本地主机集群(它确实会打开),然后打开一个名为 "hero" 的存储桶,它实际上存在于我的 Couchbase 服务器中。
然而,我不断收到以下错误:
2017-11-08 00:40:25.546 ERROR 1077 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "hero" do not match.] with root cause
com.couchbase.client.java.error.InvalidPasswordException: Passwords for bucket "hero" do not match.
at com.couchbase.client.java.CouchbaseAsyncCluster.call(CouchbaseAsyncCluster.java:156) ~[java-client-2.0.3.jar:2.0.3]
at com.couchbase.client.java.CouchbaseAsyncCluster.call(CouchbaseAsyncCluster.java:146) ~[java-client-2.0.3.jar:2.0.3]
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction.onError(OperatorOnErrorResumeNextViaFunction.java:77) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorMap.onError(OperatorMap.java:49) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.NotificationLite.accept(NotificationLite.java:147) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:177) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.access[=11=]0(OperatorObserveOn.java:65) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:153) ~[rxjava-1.0.4.jar:1.0.4]
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47) ~[rxjava-1.0.4.jar:1.0.4]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_151]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_151]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access1(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_151]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[na:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_151]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_151]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151]
它以某种方式询问存储桶的密码。但是在Couchbase中并没有bucket级别的密码配置。
有人知道吗?
在 Couchbase Server 5.0 中,引入了基于角色的访问控制。您现在必须创建一个名称与存储桶名称匹配的用户,并在打开存储桶时使用该用户的密码。用户必须具有对存储桶具有访问权限的角色。
Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero", "password");
有关详细信息,请参阅此 Couchbase 论坛 post:V5.0 - NEW Role-Based Authentication - Bucket Passwords, etc
SDK Users
- Continue to use your current SDK versions to access buckets where there is a user, with proper permissions, with the same name as the bucket.
- Upgrade to the latest SDK versions to access the newer Authentication and User Management functions that are now available.