From: Morris Jobke Date: Wed, 22 May 2019 10:19:07 +0000 (+0200) Subject: Allow redis cluster to use password X-Git-Tag: v17.0.0beta1~381^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e9e9b6a4b63aa32e9623337ed3ea2838414cb5b1;p=nextcloud-server.git Allow redis cluster to use password Signed-off-by: Morris Jobke --- diff --git a/config/config.sample.php b/config/config.sample.php index b25a4baeadd..d7f9b217061 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1160,15 +1160,19 @@ $CONFIG = array( * which then causes a FileLocked exception. * * See https://redis.io/topics/cluster-spec for details about the Redis cluster + * + * Authentication works with phpredis version 4.2.1+. See + * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1 */ 'redis.cluster' => [ 'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required 'localhost:7000', - 'localhost:7001' + 'localhost:7001', ], 'timeout' => 0.0, 'read_timeout' => 0.0, - 'failover_mode' => \RedisCluster::FAILOVER_ERROR + 'failover_mode' => \RedisCluster::FAILOVER_ERROR, + 'password' => '', // Optional, if not defined no password will be used. ], diff --git a/lib/private/RedisFactory.php b/lib/private/RedisFactory.php index 22d02e07c29..2224eaca79c 100644 --- a/lib/private/RedisFactory.php +++ b/lib/private/RedisFactory.php @@ -56,7 +56,11 @@ class RedisFactory { } else { $readTimeout = null; } - $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout); + if (isset($config['password']) && $config['password'] !== '') { + $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout, false, $config['password']); + } else { + $this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout); + } if (isset($config['failover_mode'])) { $this->instance->setOption(\RedisCluster::OPT_SLAVE_FAILOVER, $config['failover_mode']);