J'utilise la version 1.4.3 du client Java et j'essaie de me connecter au serveur Couchbase que j'ai exécuté localement mais je reçois des erreurs auth. Après avoir parcouru le code (n'est pas open source génial?) De la façon dont leur bibliothèque client utilise les variables parmi leurs classes, je suis arrivé à la conclusion que si je veux être en mesure de me connecter à un "seau" que j'ai pour créer un utilisateur pour chaque "compartiment" avec le même nom d'utilisateur que ce compartiment. Cela n'a aucun sens pour moi. Je dois me tromper. Ne suis-je pas? Il doit y avoir un autre moyen. Qu'est-ce que c'est?Interrogation des vues dans Couchbase, Client Java
Pour référence, voici ce que j'utilise pour créer une connexion (il est Scala mais regarderais presque identique en Java):
val cf = new CouchbaseConnectionFactoryBuilder()
.setViewTimeout(opTimeout)
.setViewWorkerSize(workerSize)
.setViewConnsPerNode(conPerNode)
.buildCouchbaseConnection(nodes, bucket, password)
new CouchbaseClient(cf)
qui découle directement de leur examples.
Leur code
Si je regarde dans le code dans lequel ils se connectent à la « vue » lui-même, je vois ce qui suit:
public ViewConnection createViewConnection(
List<InetSocketAddress> addrs) throws IOException {
return new ViewConnection(this, addrs, bucket, pass);
}
qui est ensuite transmis à un constructor:
public ViewConnection(final CouchbaseConnectionFactory cf,
final List<InetSocketAddress> seedAddrs, final String user,
final String password) //more code...
et cette variable est user
effectivement utilisé dans le HTTP Basic Auth pour former le Authentica en-tête. Cette variable user
étant, bien sûr, équivalente à la variable bucket
dans le CouchbaseConnectionFactory.