String length must be a multiple of four.


今天在整理2013年的工作时的一个项目,修改了数据库连接,初始化数据库,部署运行报错,主要原因是阿里巴巴druid报错,导致DataSource初始化失败。

druid报错日志:

Caused by: java.lang.IllegalArgumentException: String length must be a multiple of four.
at com.alibaba.druid.util.Base64.base64ToByteArray(Base64.java:122)
at com.alibaba.druid.util.Base64.base64ToByteArray(Base64.java:107)
at com.alibaba.druid.filter.config.ConfigTools.decrypt(ConfigTools.java:150)
at com.alibaba.druid.filter.config.ConfigFilter.decrypt(ConfigFilter.java:197)
... 79 more


我想到可能的原因是:

1、jdk版本问题。

2、tomcat版本问题。

3、MySQL版本太新,导致mysql驱动和druid需要升级。

4、记录数据库连接信息的.properties文件编码问题。


然后,我对可能的问题进行一一尝试。发现问题未解决。

最后,我去仔细看了下spring配置文件里有关druid的配置。心中一万个草泥马。

<!-- 解密密码必须要配置的项 -->
		<property name="filters" value="config" />
		<property name="connectionProperties" value="config.decrypt=true" />

居然使用了druid的加解密功能。数据库连接密码是通过druid加密的,然后druid解密再访问数据库。怪不得报得错误是有关字符加解密编码的错误。

当时修改数据库配置信息的时候,心里想把密码搞得那么复杂干嘛?当时就没想到这是druid的加密


https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98




  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

松门一枝花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值