mirror of
https://github.com/predis/predis.git
synced 2026-09-20 15:26:46 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9930e933c6 | |||
| 16957f3b39 |
+10
-2
@@ -1,7 +1,15 @@
|
|||||||
|
v1.1.6 (2020-09-11)
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
- __FIX__: reverted support for sentinels authentication implemented in v1.1.5
|
||||||
|
as it was bugged (see ISSUE #658), sorry for the trouble. This is now postponed
|
||||||
|
as it requires a more thorough investigation.
|
||||||
|
|
||||||
|
|
||||||
v1.1.5 (2020-09-10)
|
v1.1.5 (2020-09-10)
|
||||||
================================================================================
|
================================================================================
|
||||||
|
|
||||||
- __FIX__: authentication for sentinels is now supported, previously it was not
|
- __FIX__:~~authentication for sentinels is now supported, previously it was not
|
||||||
possible to specify a `password` for sentinels as its value was stripped during
|
possible to specify a `password` for sentinels as its value was stripped during
|
||||||
initialization because sentinels did not support authentication until Redis 5.
|
initialization because sentinels did not support authentication until Redis 5.
|
||||||
**Please note** that with the current implementation each sentinel must have
|
**Please note** that with the current implementation each sentinel must have
|
||||||
@@ -9,7 +17,7 @@ its own `password` parameter set in the parameters list despite this password is
|
|||||||
the same for all sentinels (read how `requirepass` works on the Redis docs). In
|
the same for all sentinels (read how `requirepass` works on the Redis docs). In
|
||||||
this case you should avoid using the global `parameters` client option used to
|
this case you should avoid using the global `parameters` client option used to
|
||||||
set default parameters for every connection created by Predis as this would end
|
set default parameters for every connection created by Predis as this would end
|
||||||
up using the same password even when connecting to actual Redis nodes.
|
up using the same password even when connecting to actual Redis nodes.~~
|
||||||
|
|
||||||
- __FIX__: the username is now correctly retrieved from the userinfo fragment of
|
- __FIX__: the username is now correctly retrieved from the userinfo fragment of
|
||||||
the URI when using the "redis" scheme and a "username:password" pair is present.
|
the URI when using the "redis" scheme and a "username:password" pair is present.
|
||||||
|
|||||||
+1
-1
@@ -11,7 +11,7 @@ desc = "Flexible and feature-complete Redis client for PHP and HHVM"
|
|||||||
homepage = "http://github.com/nrk/predis"
|
homepage = "http://github.com/nrk/predis"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
version = "1.1.6"
|
version = "1.1.6"
|
||||||
stability = "devel"
|
stability = "stable"
|
||||||
channel = "pear.nrk.io"
|
channel = "pear.nrk.io"
|
||||||
|
|
||||||
author = "Daniele Alessandri \"nrk\" <suppakilla@gmail.com>"
|
author = "Daniele Alessandri \"nrk\" <suppakilla@gmail.com>"
|
||||||
|
|||||||
+1
-1
@@ -40,7 +40,7 @@ use Predis\Transaction\MultiExec as MultiExecTransaction;
|
|||||||
*/
|
*/
|
||||||
class Client implements ClientInterface, \IteratorAggregate
|
class Client implements ClientInterface, \IteratorAggregate
|
||||||
{
|
{
|
||||||
const VERSION = '1.1.6-dev';
|
const VERSION = '1.1.6';
|
||||||
|
|
||||||
protected $connection;
|
protected $connection;
|
||||||
protected $options;
|
protected $options;
|
||||||
|
|||||||
@@ -239,12 +239,15 @@ class SentinelReplication implements ReplicationInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_array($parameters)) {
|
if (is_array($parameters)) {
|
||||||
// Password authentication is fine now that Redis Sentinel supports
|
// NOTE: sentinels do not accept AUTH and SELECT commands so we must
|
||||||
// password-protected sentinel instances, but we must explicitly set
|
// explicitly set them to NULL to avoid problems when using default
|
||||||
// "database" and "username" to NULL so that no augmented AUTH (ACL)
|
// parameters set via client options. Actually AUTH is supported for
|
||||||
// and SELECT command are sent by accident to the sentinels.
|
// sentinels starting with Redis 5 but we have to differentiate from
|
||||||
|
// sentinels passwords and nodes passwords, this will be implemented
|
||||||
|
// in a later release.
|
||||||
$parameters['database'] = null;
|
$parameters['database'] = null;
|
||||||
$parameters['username'] = null;
|
$parameters['username'] = null;
|
||||||
|
$parameters['password'] = null;
|
||||||
|
|
||||||
if (!isset($parameters['timeout'])) {
|
if (!isset($parameters['timeout'])) {
|
||||||
$parameters['timeout'] = $this->sentinelTimeout;
|
$parameters['timeout'] = $this->sentinelTimeout;
|
||||||
|
|||||||
@@ -36,29 +36,19 @@ class SentinelReplicationTest extends PredisTestCase
|
|||||||
/**
|
/**
|
||||||
* @group disconnected
|
* @group disconnected
|
||||||
*/
|
*/
|
||||||
public function testParametersForSentinelConnectionShouldUsePasswordForAuthentication()
|
public function testParametersForSentinelConnectionShouldNotUseDatabaseAndUsernameAndPassword()
|
||||||
{
|
{
|
||||||
$replication = $this->getReplicationConnection('svc', array(
|
$replication = $this->getReplicationConnection('svc', array(
|
||||||
'tcp://127.0.0.1:5381?alias=sentinel1&password=secret',
|
'tcp://127.0.0.1:5381?alias=sentinel1&database=1&username=myusername&password=secret',
|
||||||
));
|
));
|
||||||
|
|
||||||
$parameters = $replication->getSentinelConnection()->getParameters()->toArray();
|
$parameters = $replication->getSentinelConnection()->getParameters()->toArray();
|
||||||
|
|
||||||
$this->assertArraySubset(array('password' => 'secret'), $parameters);
|
$this->assertArraySubset(array(
|
||||||
}
|
'database' => null,
|
||||||
|
'username' => null,
|
||||||
/**
|
'password' => null
|
||||||
* @group disconnected
|
), $parameters);
|
||||||
*/
|
|
||||||
public function testParametersForSentinelConnectionShouldNotUseDatabaseAndUsername()
|
|
||||||
{
|
|
||||||
$replication = $this->getReplicationConnection('svc', array(
|
|
||||||
'tcp://127.0.0.1:5381?alias=sentinel1&database=1&username=myusername',
|
|
||||||
));
|
|
||||||
|
|
||||||
$parameters = $replication->getSentinelConnection()->getParameters()->toArray();
|
|
||||||
|
|
||||||
$this->assertArraySubset(array('database' => null, 'username' => null), $parameters);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user