Browse Source

RedisEngine: authenticate connection if 'password' is set

Rachman Chavik 13 years ago
parent
commit
7d844866f0

+ 1 - 1
lib/Cake/Cache/Cache.php

@@ -103,7 +103,7 @@ class Cache {
  * - `path` Used by FileCache.  Path to where cachefiles should be saved.
  * - `lock` Used by FileCache.  Should files be locked before writing to them?
  * - `user` Used by Xcache.  Username for XCache
- * - `password` Used by Xcache.  Password for XCache
+ * - `password` Used by Xcache/Redis.  Password for XCache/Redis
  *
  * @see app/Config/core.php for configuration settings
  * @param string $name Name of the configuration

+ 4 - 0
lib/Cake/Cache/Engine/RedisEngine.php

@@ -62,6 +62,7 @@ class RedisEngine extends CacheEngine {
 			'prefix' => null,
 			'server' => '127.0.0.1',
 			'port' => 6379,
+			'password' => false,
 			'timeout' => 0,
 			'persistent' => true
 			), $settings)
@@ -87,6 +88,9 @@ class RedisEngine extends CacheEngine {
 		} catch (RedisException $e) {
 			return false;
 		}
+		if ($return && $this->settings['password']) {
+			$return = $this->_Redis->auth($this->settings['password']);
+		}
 		return $return;
 	}
 

+ 2 - 1
lib/Cake/Test/Case/Cache/Engine/RedisEngineTest.php

@@ -73,7 +73,8 @@ class RegisEngineTest extends CakeTestCase {
 			'server' => '127.0.0.1',
 			'port' => 6379,
 			'timeout' => 0,
-			'persistent' => true
+			'persistent' => true,
+			'password' => false,
 		);
 		$this->assertEquals($expecting, $settings);
 	}