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

中的值。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM