2017-11-07 57 views
2

Couchbase 5.0とそのJavaクライアント2.0.3を使用すると、次のエラーが発生します。 Couchbaseバケット認証エラー

ちょうどバケツ開くための手順を以下:

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

べきである:基本的なローカル設定で、

https://developer.couchbase.com/documentation/server/current/sdk/java/managing-connections.html

ように説明し、それが2行のコードの問題ですlocalhostクラスタを開き(実際には)、その後、実際には私のCouchbaseサーバに存在する "hero"と呼ばれるバケットを開きます。

それにもかかわらず、私は次のエラーを取得しておいてください。

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のバケットレベルでのパスワードの設定はありません。

答えて

3

Couchbase Server 5.0では、ロールベースのアクセス制御が導入されました。バケット名と一致する名前のユーザーを作成し、バケットを開くときにそのユーザーのパスワードを使用する必要があります。ユーザーは、バケットへのアクセス権を持つ役割を持っている必要があります。

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

詳細については、このCouchbaseのフォーラムの記事を参照してください: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.
+0

だけで完璧な答えを。私はその新しい仕様を見ていなかった。ありがとう! – ElPiter

+0

あなたは大歓迎です! –

+0

あなたは私の日を救った。ありがとう! – slhddn