diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseConfiguration.java index 4dc458be67..28f14f89dc 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseConfiguration.java @@ -59,12 +59,11 @@ public class CouchbaseConfiguration { public Cluster couchbaseCluster() { CouchbaseCluster couchbaseCluster = CouchbaseCluster .create(couchbaseEnvironment(), determineBootstrapHosts()); - if (this.properties.getUsername().isEmpty() - || this.properties.getPassword().isEmpty()) { - return couchbaseCluster; + if (isRoleBasedAccessControlEnabled()) { + return couchbaseCluster.authenticate(this.properties.getUsername(), + this.properties.getPassword()); } - return couchbaseCluster.authenticate(this.properties.getUsername(), - this.properties.getPassword()); + return couchbaseCluster; } /** @@ -86,12 +85,16 @@ public class CouchbaseConfiguration { @Bean @Primary public Bucket couchbaseClient() { - if (this.properties.getUsername().isEmpty() - || this.properties.getPassword().isEmpty()) { - return couchbaseCluster().openBucket(this.properties.getBucket().getName(), - this.properties.getBucket().getPassword()); + if (isRoleBasedAccessControlEnabled()) { + return couchbaseCluster().openBucket(this.properties.getBucket().getName()); } - return couchbaseCluster().openBucket(this.properties.getBucket().getName()); + return couchbaseCluster().openBucket(this.properties.getBucket().getName(), + this.properties.getBucket().getPassword()); + } + + private boolean isRoleBasedAccessControlEnabled() { + return this.properties.getUsername() != null + && this.properties.getPassword() != null; } /** diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java index 5919df7880..e5aa85ee29 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.boot.autoconfigure.couchbase; import java.time.Duration; @@ -37,19 +38,19 @@ public class CouchbaseProperties { */ private List bootstrapHosts; - private final Bucket bucket = new Bucket(); - - private final Env env = new Env(); - /** - * Password of the cluster on RBA(role base access). + * Cluster username when using role based access. */ - private String password = ""; + private String username; /** - * Username of the cluster on RBA(role base access). + * Cluster password when using role based access. */ - private String username = ""; + private String password; + + private final Bucket bucket = new Bucket(); + + private final Env env = new Env(); public List getBootstrapHosts() { return this.bootstrapHosts; @@ -59,12 +60,12 @@ public class CouchbaseProperties { this.bootstrapHosts = bootstrapHosts; } - public Bucket getBucket() { - return this.bucket; + public String getUsername() { + return this.username; } - public Env getEnv() { - return this.env; + public void setUsername(String username) { + this.username = username; } public String getPassword() { @@ -75,12 +76,12 @@ public class CouchbaseProperties { this.password = password; } - public String getUsername() { - return this.username; + public Bucket getBucket() { + return this.bucket; } - public void setUsername(String username) { - this.username = username; + public Env getEnv() { + return this.env; } public static class Bucket {