Version
4.3.5
Context
I encountered an authentication issue when connecting to a Predixy-proxied Redis cluster.
Do you have a reproducer?
No, but could provide one if requested.
Steps to reproduce
- Configure a predixy cluster with authentication enabled.
- Connect to the proxy with a Redis URI containing the password.
- Issue a
PING command via Vert.x Redis client.
- Get
ERR auth permission deny error.
Extra
|
if (err instanceof ErrorType) { |
|
if (((ErrorType) err).is("NOAUTH")) { |
|
// old authentication required |
The Redis connection manager in Vert.x Redis client expects the server to return NOAUTH for an unauthenticated client if HELLO is not recognized by the server. Predixy, however, returns an error of type ERR, so old-style authentication is not attempted at all in the ping() method.
Is it possible to attempt old-style authentication before attempting to PING the server if password is set?
Full error message from Predixy is ERR auth permission deny, as shown in https://github.com/joyieldInc/predixy/blob/c15f54e274afc596b8e8cd7fecac70164c95b9ec/src/Response.cpp#L27.
Version
4.3.5
Context
I encountered an authentication issue when connecting to a Predixy-proxied Redis cluster.
Do you have a reproducer?
No, but could provide one if requested.
Steps to reproduce
PINGcommand via Vert.x Redis client.ERR auth permission denyerror.Extra
vertx-redis-client/src/main/java/io/vertx/redis/client/impl/RedisConnectionManager.java
Lines 295 to 297 in e4609d6
The Redis connection manager in Vert.x Redis client expects the server to return
NOAUTHfor an unauthenticated client ifHELLOis not recognized by the server. Predixy, however, returns an error of typeERR, so old-style authentication is not attempted at all in theping()method.Is it possible to attempt old-style authentication before attempting to
PINGthe server if password is set?Full error message from Predixy is
ERR auth permission deny, as shown in https://github.com/joyieldInc/predixy/blob/c15f54e274afc596b8e8cd7fecac70164c95b9ec/src/Response.cpp#L27.