Ошибка аутентификации Couchbase Bucket

Используя 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");

Это должно открыть кластер localhost (это действительно так), а затем открыть корзину под названием 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$1.call(CouchbaseAsyncCluster.java:156) ~[java-client-2.0.3.jar:2.0.3]
    at com.couchbase.client.java.CouchbaseAsyncCluster$1.call(CouchbaseAsyncCluster.java:146) ~[java-client-2.0.3.jar:2.0.3]
    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$1.onError(OperatorOnErrorResumeNextViaFunction.java:77) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.OperatorMap$1.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$000(OperatorObserveOn.java:65) ~[rxjava-1.0.4.jar:1.0.4]
    at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.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.access$201(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 нет конфигурации пароля на уровне сегментов.

Любая идея кто-нибудь?

1 ответ

Решение

В Couchbase Server 5.0 были представлены элементы управления доступом на основе ролей. Теперь вы должны создать пользователя с именем, совпадающим с именем корзины, и использовать пароль этого пользователя при открытии корзины. Пользователь должен иметь роль с правами доступа к корзине.

Cluster cluster = CouchbaseCluster.create();
Bucket bucket = cluster.openBucket("hero", "password");

См. Этот пост на форуме Couchbase для получения дополнительной информации: V5.0 - НОВАЯ аутентификация на основе ролей - Парольные пароли и т. Д

Пользователи SDK

  • Продолжайте использовать текущие версии SDK для доступа к сегментам, где есть пользователь с соответствующими разрешениями и именем, совпадающим с именем блока.
  • Обновите до последних версий SDK, чтобы получить доступ к новым функциям аутентификации и управления пользователями, которые теперь доступны.
Другие вопросы по тегам