alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.9k stars 8.57k forks source link

springboot2.0.3,druid1.1.22,属性加载不生效 #3867

Closed jack-nothing closed 4 years ago

jack-nothing commented 4 years ago

1594348175039 ![Uploading 1594348217866..jpg…]()

故事是这样 升级springboot版本1.4.1->2.0.3 druid1.1.6->1.1.22 升级之后,爆出来的问题是数据库密码错误, 经过一系列排查,发现druid在进init()方法是,其filters中没有值 filter.config.enable:true filters:config connectionProperties:config.decrypt=true;decrypt.key={……}

因为没有走filters的init所以,也就没有进入ConfigFilter,也就没有解密,同时发现不光是filters配置没有生效,druid下配的属性都没有获取到 不知是哪里细节的问题,求助!!

jack-nothing commented 4 years ago

修改connectionProperties->connectProperties之后可以读到了,但是读取的有问题 ![Uploading 1594350766512..jpg…]() config.decrypt=true;config.decrypt.key{…} 解析的有点问题,看图片下方debug的属性显示

jack-nothing commented 4 years ago

1594359139231

经过一番品读源码,最终得出解决方式。。 把connectProperties下的两个属性,以一个奇怪的方式排列。。

jack-nothing commented 4 years ago

原来的方式:connectProperties:config.decrypt=true;config.decrypt.key={.......} 此方式在1.1.22中connectProperties会解析成这样

key--->config.decrypt:
value---->true;config.decrypt.key={.......}}

改为如下connectProperties的解析就正常了:

connectProperties:
    config.decrypt: true
    config.decrypt.key: ${......................}