jetcache icon indicating copy to clipboard operation
jetcache copied to clipboard

jetcache-starter-redis-lettuce 2.5.16 lettuce 管理连接时 不兼容含有“@”密码问题

Open ithinksky opened this issue 4 years ago • 9 comments

1、版本

        <dependency>
            <groupId>com.alicp.jetcache</groupId>
            <artifactId>jetcache-starter-redis-lettuce</artifactId>
            <version>2.5.16</version>
        </dependency>

2、现象描述 配置如下,

jetcache:
  statIntervalMinutes: 15
  areaInCacheName: false
  hidePackages: com.alibaba
  local:
    default:
      type: caffeine
      limit: 100
      keyConvertor: fastjson
      expireAfterWriteInMillis: 100000
  remote:
    default:
      type: redis.lettuce
      keyConvertor: fastjson
      valueEncoder: java
      valueDecoder: java
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50
      host: ${spring.redis.host}
      port: ${spring.redis.port}
      uri:
        - redis://${spring.redis.password}@47.100.231.15:6379/0  #redis://密码@IP:端口/库

当password值包含 ‘@' 特殊符号时, 如:

spring.redis.password = redis@dddpwd123

管理连接时 不兼容含有“@”密码问题

ithinksky avatar Mar 01 '20 07:03 ithinksky

这个可能不是很好办,RedisLettuceAutoConfiguration这个类你自己改一下看看?

areyouok avatar Mar 01 '20 08:03 areyouok

最近也遇到类似问题,同时还发现密码包含字符#,也会出现问题,作者难道不打算解决该类问题吗??

lenliu2016 avatar Mar 22 '20 06:03 lenliu2016

是不打算支持,因为这个yml是spring boot加载的,如何转义特殊字符是spring boot的事情。

https://stackoverflow.com/questions/50672043/inside-spring-boot-application-yml-how-to-use-special-character

areyouok avatar Mar 22 '20 13:03 areyouok

最近也遇到类似问题,同时还发现密码包含字符#,也会出现问题,作者难道不打算解决该类问题吗??

也遇到这个问题了,不过明知是坑,绕过去不就是了。

whbq avatar Jul 03 '20 05:07 whbq

最近也遇到类似问题,同时还发现密码包含字符#,也会出现问题,作者难道不打算解决该类问题吗??

也遇到这个问题了,不过明知是坑,绕过去不就是了。

这个问题自己跟一下初始化过程的源码,稍微复写一下相关代码即可绕过去。

ithinksky avatar Jul 08 '20 11:07 ithinksky

需要转义,spring Data redis 使用'',而jetcache使用URL转义 比如:

spring:
  application:
      redis:
          password: '123@!'
jetcache:
  remote:
   test:
      uri: redis://123%40%21@${spring.redis.host}:${spring.redis.port}/${spring.redis.database}
      poolConfig:
        minIdle: 5
        maxIdle: 20
        maxTotal: 50

hb0730 avatar Dec 03 '20 05:12 hb0730

这个问题2.6.0有解决吗?

lakehuang avatar Mar 01 '21 08:03 lakehuang

这个其实可以直接引用spring redis的配置。

引用包: <groupId>com.alicp.jetcache</groupId> <artifactId>jetcache-starter-redis-springdata</artifactId> ${jetcache.version}

配置: jetcache.remote.default.type=redis.springdata

这样就可以解决这个问题了。

lakehuang avatar Jun 11 '21 08:06 lakehuang

这个其实可以直接引用spring redis的配置。

引用包: com.alicp.jetcache jetcache-starter-redis-springdata ${jetcache.version}

配置: jetcache.remote.default.type=redis.springdata

这样就可以解决这个问题了。

这个办法好

chenzhixiang111 avatar Apr 01 '22 06:04 chenzhixiang111