-
Notifications
You must be signed in to change notification settings - Fork 120
Description
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
PINGcommand via Vert.x Redis client. - Get
ERR auth permission denyerror.
Extra
vertx-redis-client/src/main/java/io/vertx/redis/client/impl/RedisConnectionManager.java
Lines 295 to 297 in e4609d6
| 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.