Я пытаюсь реализовать аутентификацию на основе пароля для дозорного.
Я добавил requirepass в sentinal.conf
У моего RedisConfig.java есть боб
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxActive);
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMinIdle(minIdle);
jedisPoolConfig.setTestOnBorrow(testOnBorrow);
RedisSentinelConfiguration redisSentinelConfiguration = new RedisSentinelConfiguration(
masterNode, nodes);
if (isNotEmpty(password)) {
RedisPassword redisPassword = RedisPassword.of(password);
redisSentinelConfiguration.setPassword(redisPassword);
}
return new JedisConnectionFactory(redisSentinelConfiguration, jedisPoolConfig);
}
Итак, я вижу, что пароль устанавливается с помощью RedisSentinelConfiguration.
Но при запуске весеннего загрузочного приложения оно пытается создать JedisSentinelPool с помощью jedisPoolConfig. Это происходит сбой из-за ошибки ниже
redis.clients.jedis.JedisSentinelPool: Невозможно получить главный адрес от работающего дозорного @ 127.0.1.1:16379. Причина: redis.clients.jedis.exceptions.JedisDataException: NOAUTH Требуется аутентификация ..
Я вижу, что исключение происходит из JedisSentinelPool.class
в методе HostAndPort initSentinels (Установить дозорные, конечное строковое masterName)
Она не принимает команду AUTH с паролем, поэтому аутентификация не удалась.
Любая помощь приветствуется