Ошибка аутентификации 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, чтобы получить доступ к новым функциям аутентификации и управления пользователями, которые теперь доступны.