Merge pull request #16389 from enesacikoglu
* pr/16389: Polish "Add support for Couchbase's role-based access" Add support for Couchbase's role-based access
This commit is contained in:
		
						commit
						9b73d6567e
					
				| 
						 | 
				
			
			@ -57,7 +57,13 @@ public class CouchbaseConfiguration {
 | 
			
		|||
	@Bean
 | 
			
		||||
	@Primary
 | 
			
		||||
	public Cluster couchbaseCluster() {
 | 
			
		||||
		return CouchbaseCluster.create(couchbaseEnvironment(), determineBootstrapHosts());
 | 
			
		||||
		CouchbaseCluster couchbaseCluster = CouchbaseCluster
 | 
			
		||||
				.create(couchbaseEnvironment(), determineBootstrapHosts());
 | 
			
		||||
		if (isRoleBasedAccessControlEnabled()) {
 | 
			
		||||
			return couchbaseCluster.authenticate(this.properties.getUsername(),
 | 
			
		||||
					this.properties.getPassword());
 | 
			
		||||
		}
 | 
			
		||||
		return couchbaseCluster;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
| 
						 | 
				
			
			@ -79,10 +85,18 @@ public class CouchbaseConfiguration {
 | 
			
		|||
	@Bean
 | 
			
		||||
	@Primary
 | 
			
		||||
	public Bucket couchbaseClient() {
 | 
			
		||||
		if (isRoleBasedAccessControlEnabled()) {
 | 
			
		||||
			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;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initialize an environment builder based on the specified settings.
 | 
			
		||||
	 * @param properties the couchbase properties to use
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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.
 | 
			
		||||
| 
						 | 
				
			
			@ -38,6 +38,16 @@ public class CouchbaseProperties {
 | 
			
		|||
	 */
 | 
			
		||||
	private List<String> bootstrapHosts;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Cluster username when using role based access.
 | 
			
		||||
	 */
 | 
			
		||||
	private String username;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Cluster password when using role based access.
 | 
			
		||||
	 */
 | 
			
		||||
	private String password;
 | 
			
		||||
 | 
			
		||||
	private final Bucket bucket = new Bucket();
 | 
			
		||||
 | 
			
		||||
	private final Env env = new Env();
 | 
			
		||||
| 
						 | 
				
			
			@ -50,6 +60,22 @@ public class CouchbaseProperties {
 | 
			
		|||
		this.bootstrapHosts = bootstrapHosts;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getUsername() {
 | 
			
		||||
		return this.username;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setUsername(String username) {
 | 
			
		||||
		this.username = username;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getPassword() {
 | 
			
		||||
		return this.password;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setPassword(String password) {
 | 
			
		||||
		this.password = password;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Bucket getBucket() {
 | 
			
		||||
		return this.bucket;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue