-
Notifications
You must be signed in to change notification settings - Fork 119
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
PING
command via Vert.x Redis client. - Get
ERR auth permission deny
error.
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.