springboot配置jasypt实现对配置文件敏感信息加密全流程详解
生活随笔
收集整理的這篇文章主要介紹了
springboot配置jasypt实现对配置文件敏感信息加密全流程详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、引入依賴
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.4</version> </dependency>2、對信息加密 —以mysql數據庫密碼為例
寫一個main方法或者測試方法:
3、修改配置文件
spring.datasource.password以密文形式進行配置:ENC(密文數據)
spring:datasource:username: rootpassword: ENC(OS40I92MLgDJy3d4A7905wyzrFPI5v4Vt5Zr7RwxsvQ=) //上一步得到的密文密碼url: jdbc:mysql://127.0.0.1:3306/table?serverTimezone=GMT%2B8 jasypt:encryptor:algorithm: PBEWithMD5AndDES //上一步用的加密算法password: 123456 //上一步用的隨機鹽,這里(自測時)先寫上,項目正式部署時去掉4、啟動項目查看數據庫是否正常訪問
上來一個ERROR。。。
*************************** APPLICATION FAILED TO START ***************************Description:Failed to bind properties under 'spring.datasource.password' to java.lang.String:Reason: Failed to bind properties under 'spring.datasource.password' to java.lang.StringAction:Update your application's configuration原因是:引入的jasypt依賴3.0.4版本問題,新版本加密算法升級,需加入iv-generator-classname: org.jasypt.iv.NoIvGenerator,或者退回3.0.0以下版本
重新啟動正常運行,數據庫正常訪問
5、啟動傳參形式加入隨機鹽
經過上述測試后,就可以把jasypt.encryptor.password: 123456配置項去掉了。因為隨機鹽是不能暴露在配置文件中的,否則加密就無意義了。注釋掉該項配置,然后項目啟動時傳入相應參數。
mvn命令啟動項目時加入jasypt.encryptor.password=123456隨機鹽配置:mvn spring-boot:run -Dspring-boot.run.arguments=--jasypt.encryptor.password=123456 (pom中需spring-boot-maven-plugin插件)
啟動成功,數據庫正常訪問!
總結
以上是生活随笔為你收集整理的springboot配置jasypt实现对配置文件敏感信息加密全流程详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Postman中几个body请求格式区别
- 下一篇: springboot中DataSourc