mybatis连接mysql加密实现

参考文章1

参考文章2

      直接重写BasicDataSource接口的setPassword方法;

这里同样存在一个问题,就是在重写的方法中,我们可以对password,username

进行解密处理,但是不能根据database.properties中的字段jdbc.isencoder值来判断

是否需要解密。

参考文章3

       采用EncryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer的方式

具体入参考文章3,在扩展的类中进行解密操作,然后其他的操作与mybatis连接mysql中相同

但是在实现的过程中发现一个问题:就是在.properties文件中设置一个字段jdbc.isencoder = 0

但是不知道怎么去使用这个字段????

所以在加载这个配置文件的时候,不知道如何去判断是否该解密,只能判断哪些字段该解密(用户名,密码)

       文章3中采用的重写PropertyPlaceholderConfigurer类中的convertProperty函数,而在这这个函数传入的

值时属性名和值,通过属性和我们需要解密的属性名对比,若是则调用解密函数进行解密。这里的局限性就是

我们无法在最开始文件中去配置是否需要加解密。所以后面我又网上找到了一个类似的其它的实现方式如下:

spring在加载.propertoes配置文件时进行加密解密:参考文章4

       在参考文章4中,通过重写PropertyPlaceholderConfigurer父类的processProperties函数

可以对读取的所有字段进行处理,这样就解决了文章3中的问题,可以根据配置来决定是否采用

加密的方式。

      在实现文章4中,发现还是需要在函数最后加上super.processProperties(beanFactoryToProcess, props);

不然在获取到.properties文件后,在注入数据连接池时,不能通过类似于${}的方式来获取前面读取的.properties

中的值。

 

 

 

 

转载于:https://www.cnblogs.com/yanliang12138/p/9705878.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值